저전력 블루투스 (LEA)를 사용하면 배터리 수명을 단축하지 않고도 Hi-Fi 오디오를 수신할 수 있으며 다양한 사용 사례 간에 원활하게 전환할 수 있습니다. Android 13 (API 수준 33)에는 LEA에 대한 기본 제공 지원이 포함되어 있습니다.
LEA 소스 기기 시장 점유율이 늘어날 때까지 대부분의 LEA 헤드셋은 듀얼 모드로 제공됩니다. 사용자는 듀얼 모드 헤드셋에서 두 전송을 모두 페어링하고 설정할 수 있어야 합니다.
사용 사례
다음과 같은 사용 사례에 LEA를 통합하는 것이 좋습니다.
오디오 공유: 사용자는 하나 이상의 오디오 싱크 기기에 여러 오디오 스트림을 동시에 공유할 수 있습니다. 소스 기기와 연결된 기기 간에 오디오가 동기화됩니다.
오디오 방송: 사용자는 친구 및 가족에게 오디오를 방송하는 동시에 정보, 엔터테인먼트 또는 접근성을 위해 공개 방송에 연결할 수 있습니다.
LC3 오디오 코덱 지원: 기본 오디오 코덱으로, HFP의 A2DP (미디어) 및 mSBC (음성)에 사용되는 SBC 코덱을 대체합니다. LC3는 더 효율적이고 재구성 가능하며 품질이 우수합니다.
오디오 샘플링 개선: 헤드셋이 마이크를 사용할 때 높은 출력 오디오 품질을 유지할 수 있습니다. 블루투스 클래식은 블루투스 마이크를 사용할 때 오디오 품질을 저하시킵니다. BLE 오디오에서는 입출력 샘플링이 32kHz에 도달할 수 있습니다.
스테레오 마이크: 공간 음향 개선을 위해 스테레오 마이크로 오디오를 녹음할 수 있습니다.
보청기 프로필 (HAP) 지원: HAP는 이전 ASHA 프로토콜보다 더 높은 접근성과 사용성을 제공합니다. 사용자는 전화 통화 및 VoIP 애플리케이션에 보청기를 사용할 수 있습니다.
향상된 속성 프로토콜 (EATT) 지원: EATT를 사용하면 개발자가 페어링된 웨어러블에 한 번에 여러 명령어를 전송할 수 있습니다.
주요 시나리오
사용 사례에는 다음과 같은 네 가지 주요 카테고리가 있습니다.
대화형: 지연 시간이 짧은 커뮤니케이션 라우팅이 필요한 다이얼러 및 VoIP 애플리케이션은 고품질 오디오와 적은 배터리 사용량을 제공합니다.
게임: 동시 마이크 및 Hi-Fi 재생을 통해 게임에서 고품질 오디오를 웨어러블 기기로 스트리밍할 수 있습니다. 게임 앱은 게임에서 블루투스 마이크를 사용할 준비가 되었다고 설정하면 BLE 오디오 입력에 액세스할 수 있습니다. 그런 다음 플레이어가 다른 플레이어와 실시간 대화를 시작하면 게임 앱에서 지연 없이 마이크 데이터를 사용할 수 있습니다.
미디어: 미디어 애플리케이션에서 오디오 관리자의 기본 기기를 설정할 수 있습니다. 사용자는 시스템 설정에서 기본 기기를 변경하여 이를 재정의할 수 있습니다.
접근성: 이제 BLE 오디오를 지원하는 보청기에서 마이크를 사용할 수 있으므로 사용자가 통화 중에 보청기를 계속 사용할 수 있습니다.
BLE Audio 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
는 블루투스를 통해 오디오 스트림을 전달합니다.- 앞서 언급한
InCallService
API는 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()
: 오디오 라우팅에 사용할 기본 기기를 설정합니다. 사용자는 시스템 설정에서 이를 재정의할 수 있습니다.
블루투스 어댑터
- 플랫폼의 하드웨어가 LEA를 지원하는 경우
isLeAudioSupported()
가 반환됩니다. - 플랫폼의 하드웨어가 LEA를 지원하면
isLeAudioBroadcastSourceSupported()
가 반환됩니다.
사용 사례 기반 가이드
다음은 특정 사용 사례를 기반으로 LEA를 구현하기 위한 가이드라인입니다.
음성 통신 애플리케이션
음성 통신 애플리케이션은 상태를 자체 관리하거나 오디오 라우팅 및 상태 로직을 실행하는 Telecom API를 사용하여 오디오 라우팅과 기기 상태를 관리할 수 있습니다.
자체 관리: 현재
startBluetoothSco()
,stopBluetoothSco()
,setSpeakerphoneOn()
를 사용 중이거나 오디오 라우팅 상태를 자체 관리하려는 애플리케이션의 경우 오디오 관리자 자체 관리 통화 가이드를 따르세요.관리형: Telecom Jetpack 라이브러리 또는 Telecom 플랫폼 API를 사용하여 오디오 또는 동영상 통화 애플리케이션을 만듭니다.
이 두 가지 솔루션을 사용하면 오디오 라우팅을 쉽고 빠르게 제어하고 블루투스 기기 간에 전환할 수 있습니다. 자세한 내용은 텔레콤 관리 통화 가이드를 참고하세요.
오디오 녹음 애플리케이션
- 미디어 레코더: 미디어 레코더를 사용하여 오디오를 녹음할 때 블루투스 히어블이 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에서 이어폰이 함께 그룹화되도록 합니다. BR/EDR 구성요소가 이미 기기의 공개 주소를 근처 기기에 노출하므로 페어링 중에 ID 주소를 사용하는 것이 좋습니다. |
향상된 속성 프로토콜 (EATT)을 지원합니다. | 페어링 및 연결 지연 시간을 줄입니다. |
강력한 GATT 캐싱을 지원합니다. | 특히 TWS 이어폰의 연결 지연 시간이 줄어듭니다. |
연결 하위 등급을 지원합니다. | 더 유연한 패킷 예약과 잠재적인 배터리 절약을 허용합니다. |
재생 및 캡처의 전처리 및 후처리 중에 신호 처리 파이프라인이 16, 24, 32, 48kHz에서 작동할 수 있을 뿐만 아니라 더 높은 주파수를 지원하는지 확인합니다. | LEA 통화 또는 VoIP 캡처 경로 및 미디어 재생에 지원되는 더 높은 샘플링 레이트를 활용합니다. |
LE 전원 제어 지원 | 전원 관리 개선 |
컨텍스트 유형 지원
설명 | 컨텍스트 |
---|---|
헤드셋이 특정 컨텍스트 유형을 명시적으로 지원하지 않는 한 할당된 번호 6.12.3에 지정된 모든 컨텍스트 유형을 사용합니다. | 예를 들어 컨텍스트 유형 'Game'이 지원되지 않으면 Android는 게임 사운드를 전송합니다. 특히 '지정되지 않음' 컨텍스트 유형은 '모든 컨텍스트 유형'을 의미하지 않으며 지원되지 않는 컨텍스트 유형은 포함되지 않습니다. |
중앙 기기가 주변기기의 ASCS와 상호작용할 때는 주변기기가 중앙 기기의 MCS 및 TBS에 연결되어야 합니다. 중앙 기기는 A2DP 또는 HFP를 사용하도록 대체될 수 있으므로 항상 LE 오디오를 스트리밍 경로로 사용하지 않을 수 있습니다. 주변기기 기기는 ASCS 상호작용을 중앙 기기가 스트리밍에 LE 오디오를 사용할지 여부를 나타내는 지표로 사용할 수 있습니다. ASCS 상호작용의 몇 가지 예로는 읽기, 쓰기, 알림 등록 등이 있습니다. |