저전력 블루투스 오디오 (LEA)를 사용하면 사용자가 배터리 수명을 단축하지 않으면서 충실도 높은 오디오를 수신하고 여러 사용 사례 간에 매끄럽게 전환할 수 있습니다. Android 13 (API 수준 33)에는 LEA에 대한 기본 지원이 포함되어 있습니다.
LEA 소스 기기 시장 점유율이 증가할 때까지 대부분의 LEA 헤드셋은 듀얼 모드입니다. 사용자는 듀얼 모드 헤드셋에서 두 전송을 모두 페어링하고 설정할 수 있어야 합니다.
사용 사례
다음 사용 사례에 LEA를 통합할 수 있습니다.
오디오 공유: 사용자는 여러 오디오 스트림을 하나 이상의 오디오 싱크 기기에 동시에 공유할 수 있습니다. 오디오는 소스 기기와 연결된 기기 간에 동기화됩니다.
오디오 방송: 사용자는 오디오를 친구 및 가족에게 방송하는 동시에 정보, 엔터테인먼트 또는 접근성을 위해 공개 방송에 연결할 수 있습니다.
LC3 오디오 코덱 지원: 이는 기본 오디오 코덱이며 A2DP (미디어)에 사용되는 SBC 코덱과 HFP (음성)의 mSBC를 대체합니다. LC3는 더 효율적이고 재구성 가능하며 품질이 더 높습니다.
오디오 샘플링 개선: 헤드셋은 마이크를 사용할 때 높은 출력 음질을 유지할 수 있습니다. 블루투스 클래식은 블루투스 마이크를 사용할 때 음질을 낮춥니다. BLE 오디오를 사용하면 입력 및 출력 샘플링이 32kHz에 도달할 수 있습니다.
스테레오 마이크: 히어러블은 공간 오디오 개선을 위해 스테레오 마이크로 오디오를 녹음할 수 있습니다.
보청기 프로필 (HAP) 지원: HAP는 이전 ASHA 프로토콜보다 사용자에게 더 나은 접근성과 사용을 제공합니다. 사용자는 보청기를 전화 통화 및 VoIP 애플리케이션에 사용할 수 있습니다.
향상된 속성 프로토콜 (EATT) 지원: EATT를 사용하면 개발자가 페어링된 히어러블에 여러 명령어를 한 번에 보낼 수 있습니다.
주요 시나리오
사용 사례에는 네 가지 주요 카테고리가 있습니다.
대화형: 지연 시간이 짧은 통신 라우팅이 필요한 다이얼러 및 VoIP 애플리케이션은 고품질 오디오와 적은 배터리 사용량을 제공합니다.
게임: 동시 마이크 및 Hi-Fi 재생을 통해 게임에서 히어러블로 고품질 오디오를 스트리밍할 수 있습니다. 게임 앱은 게임에서 블루투스 마이크를 사용할 준비가 된 상태로 설정할 때 BLE 오디오 입력에 액세스할 수 있습니다. 그런 다음 플레이어가 동료 플레이어와 실시간 대화를 시작하면 게임 앱은 지연 없이 마이크 데이터를 사용할 수 있습니다.
미디어: 미디어 애플리케이션은 오디오 관리자의 기본 기기를 설정할 수 있습니다. 사용자는 시스템 설정 내에서 기본 기기를 변경하여 이 설정을 재정의할 수 있습니다.
접근성: BLE 오디오를 지원하는 보청기는 이제 마이크를 사용할 수 있으므로 사용자는 통화에 보청기를 계속 사용할 수 있습니다.
BLE 오디오 API 및 메서드
BLE 오디오 히어러블을 지원하려면 다음 API 및 메서드가 필요합니다.
AudioManager
setCommunicationDevice()는 음성 또는 영상 통화와 같은 커뮤니케이션 사용 사례에 사용해야 하는 오디오 기기를 선택합니다. 이 메서드는 음성 또는 영상 채팅 애플리케이션에서 플랫폼에서 기본적으로 선택한 오디오 기기 이외의 다른 오디오 기기를 선택하는 데 사용할 수 있습니다. 이 API는 지원 중단된 API(startBluetoothSco(),stopBluetoothSco(), 및setSpeakerphoneOn())를 대체합니다.clearCommunicationDevice()는 앱이 통화 또는 세션을 완료한 후 호출되어 사용자가 여러 애플리케이션 간에 이동할 때 우수한 환경을 제공하도록 지원합니다.
BluetoothProfile
BluetoothLeAudio는 프록시 객체를 통해 블루투스 서비스를 제어합니다.
Telecom InCallService
InCallService#requestCallEndpointChange()는 지원 중단된InCallService.setAudioRoute()및InCallService.requestBluetoothAudio()API를 대체하여 앱이 특정CallEndpoint로 오디오 라우팅을 요청할 수 있도록 합니다. 클라이언트는 변경을 요청할 때 자체CallEndpoint를 정의해서는 안 됩니다. 대신 새 엔드포인트는 유효한 엔드포인트 중 하나여야 합니다.InCallService.onAvailableCallEndpointsChanged(java.util.List)CallEndpoint.TYPE_BLUETOOTH는 블루투스를 통해 오디오 스트림을 전달합니다.- 앞서 언급한
InCallServiceAPI는 Android 휴대전화의 기본 전화 앱 또는 웨어러블, 자동차 또는 오디오 라우팅에 영향을 미칠 수 있는 기타 블루투스 기기와 같은 기타 통화 화면에서 사용하도록 설계되었습니다.
Telecom CallControl
- 새
CallControl클래스는 VoIP 애플리케이션에만Connection및ConnectionService를 대체하기 위해 API 수준 34에서 도입되었습니다. CallControl.requestCallEndpointChange()CallEndpoint변경도 요청합니다. 이 API는 지원 중단된Connection.requestBluetoothAudio()및Connection.setAudioRoute()API를 대체합니다.- 업데이트된 Telecom 플랫폼 API 외에도 음성 또는 영상 통화 애플리케이션을 빌드할 때는 Telecom Jetpack 라이브러리를 사용하는 것이 좋습니다. 이 라이브러리는 통합 프로세스를 크게 간소화하고 모든 Android 화면에서 VoIP 통화를 개선할 수 있습니다.
오디오 기기 정보
AudioDeviceInfo.TYPE_BLE_HEADSET은 오디오 기기 유형을 LEA 기기로 설명합니다. 히어러블 기기가 LEA 기기인지 식별하는 데 사용됩니다.
오디오 레코더
setPreferredDevice()는 오디오 라우팅에 사용할 기본 기기를 설정합니다. 사용자는 시스템 설정에서 이 설정을 재정의할 수 있습니다.
블루투스 어댑터
isLeAudioSupported(): 기기 하드웨어가 LE 오디오를 지원하는지 나타내는@BluetoothStatusCodes상수 (FEATURE_SUPPORTED,FEATURE_NOT_SUPPORTED또는 오류 코드)를 반환합니다.isLeAudioBroadcastSourceSupported(): 기기 하드웨어가 LE 오디오 방송 소스를 지원하는지 나타내는@BluetoothStatusCodes상수 (FEATURE_SUPPORTED,FEATURE_NOT_SUPPORTED, 또는 오류 코드)를 반환합니다.
사용 사례 기반 가이드
다음은 특정 사용 사례를 기반으로 LEA를 구현하기 위한 가이드라인입니다.
음성 커뮤니케이션 애플리케이션
음성 커뮤니케이션 애플리케이션은 상태를 자체 관리하거나 오디오 라우팅 및 상태 로직을 실행하는 Telecom API를 사용하여 오디오 라우팅 및 기기 상태를 관리할 수 있습니다.
자체 관리: 현재
startBluetoothSco(),stopBluetoothSco(), 및setSpeakerphoneOn()을 사용하거나 오디오 라우팅 상태를 자체 관리하려는 애플리케이션의 경우 오디오 관리자 자체 관리 통화 가이드를 따르세요.관리: Telecom Jetpack 라이브러리 또는 Telecom 플랫폼 API를 사용하여 오디오 또는 영상 통화 애플리케이션을 만듭니다.
이 두 솔루션을 사용하면 오디오 라우팅을 빠르고 쉽게 제어하고 블루투스 기기 간에 전환할 수 있습니다. 자세한 내용은 Telecom 관리 통화 가이드를 참고하세요.
오디오 녹음 애플리케이션
- 미디어 레코더: 미디어 레코더를 사용하여 오디오를 녹음할 때 블루투스 히어러블이 LEA를 지원하는 경우 이제 스테레오로 녹음할 수 있습니다. 오디오 녹음 가이드를 확인하세요.
LE 오디오 (LEA) 헤드셋 권장사항
LEA 헤드셋이 더 많이 출시됨에 따라 실제 테스트에서 사용자 환경을 저하하는 문제가 발견되었습니다. 사양에서는 이러한 문제를 모두 다루지 않습니다. 다음 표에는 LEA 헤드셋 제조업체가 Android 사용자의 엔드 투 엔드 환경을 개선하기 위해 따라야 하는 권장사항 목록이 나와 있습니다.
| 설명 | 컨텍스트 |
|---|---|
듀얼 모드 헤드셋에 교차 전송 키 파생 (CTKD) 을 지원합니다.
|
LEA 소스 기기 시장 점유율이 증가할 때까지 대부분의 새 LEA 헤드셋은 듀얼 모드입니다. 사용자가 듀얼 모드 헤드셋을 원활하게 페어링하고 두 전송을 모두 설정할 수 있는 것이 중요합니다. 이는 Google 빠른 페어링에도 중요합니다. |
|
LEA 헤드셋이 소스 기기에 안정적으로 다시 연결되도록 하려면 타겟팅된 공지사항 (TA)을 지원합니다. LE 오디오 이어버드는 TA를 사용하여 중앙 기기에서 수신 연결을 요청해야 합니다. 향후 BT SIG에 추가될 예정입니다. |
휴대전화 또는 헤드셋에서 연결을 시작할 수 있는 BR/EDR의 페이징 모델과 달리 LEA의 연결은 중앙 기기에서 시작해야 합니다. 현재 많은 헤드셋에서 TA를 사용하지 않으므로 중앙 기기가 허용 목록에 추가하지 않고는 주변기기에 다시 연결하지 못할 수 있습니다. 하지만 허용 목록 해결 방법은 헤드셋이 다른 중앙 기기에 연결하지 못하도록 할 수 있습니다. 따라서 LEA 헤드셋이 TA를 올바르게 지원하여 중앙 기기가 다중 지점 연결을 끊을 수 있는 해결 방법 없이 안정적으로 다시 연결할 수 있도록 하는 것이 중요합니다. |
듀얼 모드 이어버드의 검색 가능성 최적화
|
이렇게 하면 듀얼 모드 LEA 이어버드가 블루투스 설정에 중복
항목으로 표시되지 않으므로 사용자가 혼동하고 LEA 페어링 환경이 손상될 수 있습니다.
동적 리더 선택은 점진적으로 페어링되는 듀얼 모드 기기에 특히 중요합니다. 예를 들어 초기 페어링 시 이어버드 하나만 사용할 수 있는 경우 듀얼 모드 기기로 표시되어야 합니다. 사용자가 나중에 두 번째 이어버드를 페어링할 때 LE 구성요소와만 페어링하면 되며 CSIP는 Android에서 함께 그룹화되도록 합니다. 페어링 중에 ID 주소를 사용하는 것이 좋습니다. BR/EDR 구성요소는 이미 기기의 공개 주소를 주변 기기에 노출하기 때문입니다. |
| 향상된 속성 프로토콜 (EATT) 을 지원합니다. | 페어링 및 연결 지연 시간을 줄입니다. |
| 강력한 GATT 캐싱 을 지원합니다. | 특히 TWS 이어버드의 연결 지연 시간을 줄입니다. |
| 연결 하위 등급 을 지원합니다. | 더 유연한 패킷 예약과 잠재적인 배터리 절약을 허용합니다. |
| 재생 및 캡처 모두의 사전 처리 및 사후 처리 중에 신호 처리 파이프라인이 16, 24, 32, 48kHz에서 작동하고 더 높은 주파수를 지원 하는지 확인합니다. | LEA 통화 또는 VoIP 캡처 경로 및 미디어 재생에 지원되는 더 높은 샘플링 레이트를 활용합니다. |
| LE 전원 제어 를 지원합니다. | 전원 관리 개선 |
컨텍스트 유형 지원
| 설명 | 컨텍스트 |
|---|---|
| 헤드셋이 특정 컨텍스트 유형을 명시적으로 지원하지 않는 경우 할당된 번호 6.12.3 에 지정된 모든 컨텍스트 유형을 사용합니다. | 예를 들어 '게임' 컨텍스트 유형이 지원되지 않으면 Android 에서 게임 사운드를 전송합니다. 특히 '지정되지 않음' 컨텍스트 유형은 '모든 컨텍스트 유형'을 의미하지 않으며 지원되지 않는 컨텍스트 유형을 포함하지 않습니다. |
중앙 기기가 주변기기의 ASCS와 상호작용할 때 주변기기는 중앙 기기의 MCS 및 TBS에 연결해야 합니다. 중앙 기기는 A2DP 또는 HFP를 사용하도록 대체될 수 있으므로 항상 LE 오디오를 스트리밍 경로로 사용하지 않을 수 있습니다. 주변기기는 ASCS 상호작용을 중앙 기기가 스트리밍에 LE 오디오를 사용할지 여부를 나타내는 지표로 사용할 수 있습니다. ASCS 상호작용의 몇 가지 예는 읽기, 쓰기, 알림 등록입니다. |