오디오 스위치

일상 작업을 실행하는 데 여러 오디오 소스 기기를 활용하는 사용자가 늘어남에 따라 여러 기기에서 헤드셋 사용을 관리할 수 있는 더 간단한 솔루션에 대한 수요가 증가하고 있습니다. 오디오 전환은 사용자 활동 (예: 영화 시작) 및 우선순위 이벤트 (예: 수신 전화)에 따라 기기 간 헤드셋 연결을 원활하게 전환합니다.

UX 원칙

  1. 사용자 전환은 빠른 속도로 진행되어야 합니다.
  2. 연결 전환은 사용자에게 투명해야 하며, 사용자가 원하지 않는 경우의 전환을 제어하거나 되돌릴 수 있어야 합니다.
  3. 전환은 사용자의 개인 정보를 보호해야 합니다.

역할

오디오 전환 시커: 시커는 오디오 소스 기기 (예: 스마트폰 또는 태블릿)이며 해당하는 경우 연결할 헤드셋을 찾습니다.

오디오 전환 제공업체: 제공업체는 일반적으로 Seeker가 전환 결정을 내리기 위해 접속 상태 및 연결 상태를 광고하는 헤드셋입니다.

요구사항 개요

제공자는 스마트 전환을 달성하기 위해 다음 요구사항을 준수해야 합니다.

이름 설명 요구사양 필수 여부
페이지 스캔 기존 연결이 있을 때 다른 Seeker의 새 연결 요청을 수락합니다.
단일 포인트 제공업체의 경우:
  • 원래의 소스 기기에서 제공업체의 연결을 끊으면 오디오 재생이 자동으로 일시중지됩니다.
멀티포인트 제공업체의 경우:
  • 아직 사용 가능한 연결이 있으면 연결 요청을 수락합니다.
  • 연결 대역폭이 가득 찼다면 가장 오래전에 사용된 연결 (예: 장시간 오디오 이벤트 없음) 연결을 해제하고 새로 들어오는 요청을 수락합니다.
성능을 향상하려면 지연 시간이 짧은 페이지 스캔 모드 (스캔 간격이 640ms 이하여야 함)가 필요합니다.
배터리 수명과 전환 성능을 절충할 수 있도록 제공자는 대부분의 경우 기본 페이지 스캔 모드를 사용할 수 있습니다 (저전력 모드, 검사 간격은 1280ms 이하여야 함). 하지만 다음과 같은 경우에는 짧은 지연 시간 모드를 사용해야 합니다.
  • 전원 켜기 처음 30초
  • 연결 또는 페이징이 없는 경우 처음 30초
  • 기기 유휴 후 처음 30초
필수
연결 기록 이전 연결로 다시 전환하여 해당하는 경우 재생을 다시 시작합니다.
다시 전환하려면 Message Stream API를 통한 통신이 트리거됩니다.
오디오 재생을 일시중지하려면 오디오 이벤트를 일시중지해야 합니다.
연결 내역을 유지하고 Message Stream API를 구현합니다. 필수
연결 상태 탐색자가 연결 전환 판단을 내릴 수 있도록 합니다. 연결 상태에는 다음이 포함됩니다.
  • 연결 상태
  • 활성 연결의 오디오 유형
  • 활성 연결의 계정 정보
  • 연결된 기기
BLE Advertising 및 메시지 스트림에 연결 상태를 포함합니다. 필수
런타임 기능 변경사항 제공업체에서 펌웨어를 업그레이드하여 오디오 전환을 사용 설정할 수 있으므로 런타임에 Seeker와 제공업체 간에 기능을 동기화해야 합니다. Message Stream API를 구현하여 런타임 기능에 액세스합니다. 필수
구성 가능한 전환 규칙 사용자 환경설정에서 기존 활성 오디오 스트리밍과 새 오디오 스트리밍 요청 간에 우선순위를 구성하도록 Seeker가 허용합니다.
예를 들어 오디오 전환 스위치는 사용자가 미디어 스트리밍과 통화 간의 자동 전환을 사용 설정/사용 중지할 수 있도록 UI 설정을 제공할 수 있습니다.
오디오 전환 시커가 메시지 스트림을 통해 전환 규칙을 설정하고 가져옵니다.
멀티포인트 제공업체만 사용할 수 있습니다.
연결된 기기 간의 전환 규칙을 구성 가능하도록 Message Stream API를 구현하세요.
선택사항
활성 기기 전환 오디오 전환을 요청한 사용자가 연결된 기기 간의 오디오 전환을 시뮬레이션할 수 있습니다.
오디오 전환 시커 측에는 연결된 기기 간에 사용자가 쉽게 전환할 수 있는 UI가 있을 수 있습니다.
멀티포인트 제공업체만 사용할 수 있습니다.
오디오 전환 Seeker용 메시지 스트림 API를 구현하여 연결된 기기 간에 활성 오디오 소스를 확인하세요.
필수
멀티포인트 전환 알림 오디오 전환 시커가 전환 알림을 표시하도록 합니다. 멀티포인트 제공업체만 사용할 수 있습니다.
멀티 포인트 전환이 진행될 때 연결된 오디오 전환 탐색자에게 알리도록 Message Stream API를 구현합니다.
필수

광고 페이로드

제공자는 광고: 검색할 수 없는 경우에 설명된 빠른 페어링 계정 데이터를 기반으로 구축된 광고의 현재 연결 상태를 포함해야 합니다.

표 4.2의 버전은 0x1입니다.

연결 상태 필드

옥텟 데이터 유형 설명 필수 여부
0 uint8 입력란 길이 및 유형
0bLLLLTTTT
  • L = 연결 상태 길이(바이트)
  • T = 유형
0bLLLL0101
  • 길이: 다름
  • 유형 = 0b0101
필수
1 uint8 연결 상태
0bHAFRSSSS
  • H = 머리 인식 시
  • A = 연결 가용성
  • F = 초점 모드
  • R = 자동 재연결됨
  • S = 연결 상태
0b-하트
필수
2 uint8 맞춤 데이터
현재에는 현재 오디오 스트리밍의 사용을 설명하는 데 사용되는 콘텐츠 유형만 포함되어 있습니다. 구직자가 제공업체에 전송합니다.
이 값은 현재 활성 스트리밍의 '시커'로부터 메시지 스트림을 통해 '제공자'에게 전송됩니다. 현재 활성 스트리밍이 Seeker에서 발생하지 않은 경우 0입니다. 필수
3 - var 연결된 기기 비트맵
제공업체에 현재 연결되어 있는 기기를 보여주는 비트맵입니다. 모든 보증된 기기는 순서대로 1개의 연결된 기기에 대해 하나씩 정렬됩니다. 기간은 제공업체에 연결된 기기 수에 따라 다릅니다.
기기가 현재 제공업체에 연결되어 있다면 1로 설정되고 그렇지 않으면 0으로 설정됩니다.
자세한 내용은 연결된 기기 비트맵을 참고하세요.
선택사항

표 4.1: 연결 상태 필드 원시 데이터

연결 플래그
  • 0bH = 머리 감지 시

    • 1, 지금 진행 중
    • 0, 그렇지 않은 경우 머리 위에 있거나 OHD 센서가 없음
  • 0bA = 연결 가용성

    • 1, 사용할 수 있는 연결이 있습니다
    • 0, 그렇지 않은 경우
  • 0bF = 포커스 모드

    • 1, 현재 집중 모드에서는 미디어 사용에 연결 전환이 허용되지 않음(예: A2DP에서 A2DP로의 전환 불가능)
    • 0, 그렇지 않은 경우
  • 0bR = 자동 재연결됨

    • 1: 현재 연결이 제공업체에서 자동으로 다시 연결되는 경우, 즉 사용자가 연결하지 않은 경우 (멀티포인트의 경우 기존 연결 중 하나가 자동으로 다시 연결된 경우 1로 설정해야 함)
    • 0, 그렇지 않은 경우
연결 상태
  • 0x0: 연결되지 않음
  • 0x1: 페이징
  • 0x2: 연결되었지만 데이터가 전송되지 않음
  • 0x3: 오디오 외 데이터 전송 (전환할 수 없는 경우에만 0xF를 사용)
  • 0x4: A2DP 스트리밍, AVRCP 적용되지 않음
  • 0x5: A2DP 스트리밍 및 AVRCP 재생
  • 0x6: 대역 및 비대역 벨소리를 포함한 HFP (전화/Voip 통화) 스트리밍
  • 0x7: LE 오디오 - 제어되지 않는 미디어 스트리밍
  • 0x8: LE 오디오 - 제어 기능이 있는 미디어 스트리밍
  • 0x9: LE 오디오 - 통화 스트리밍
  • 0xA: LE 오디오 - 브로드캐스트
  • 0xF: 일시적으로 연결 전환 사용 중지 (예: 펌웨어 업데이트)
연결된 기기 비트맵

원치 않는 연결 전환을 방지하기 위해 시커는 헤드셋이 현재 연결되어 있는 기기를 파악해야 할 수 있습니다. 예를 들어 헤드셋이 휴대전화에 연결되면 가족 중 한 명이 태블릿에서 YouTube를 시작할 때 연결 전환으로 인해 사용자가 방해를 받고 싶지 않습니다.

이 비트맵은 익명이므로 시커는 다른 기기와 제공자가 결합되어 있는지 알 수 없습니다. 예를 들어 5개의 연결된 기기를 살펴보겠습니다.

  • 0: 노트북 (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: 태블릿 (0b000x0000)
  • 4: TV (0b0000x000)

현재 연결된 기기가 노트북과 태블릿인 경우 비트맵 값은 0b10010000이 됩니다. 사용자가 헤드셋을 초기화하거나 연결된 기기 수가 상한에 도달하는 경우와 같이 불가피한 경우 주문 변경이 허용됩니다.

무작위 해결 가능 광고

사용자 개인 정보 보호를 추적하고 존중하기 위해 제공자는 AES-CTR을 사용하여 계정 키로 필드를 순환하고 암호화해야 합니다.

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

각 항목의 의미는 다음과 같습니다.

  1. 키는 다음 섹션에 정의된 사용 중인 계정 키에서 파생됩니다.

    • 키는 SHA-256 해시 함수를 사용하여 HKDF 함수, IETF RFC 5869에 의해 생성됩니다.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)         
      
    • 제공업체는 여기에서 원래 계정 키를 사용해야 합니다. 즉, 키의 첫 번째 바이트는 사용 패턴에 포함되지 않은 0x04입니다.

  2. IV (초기 벡터)는 패딩이 없는 계정 키 데이터의 2바이트 솔트입니다. 즉, IV는 연결(솔트, 14바이트 ZERO)입니다.

  3. 연결 상태 원시 데이터는 표 4.1에 정의되어 있습니다. 연결 상태가 변경되면 동일한 솔트 및 RPA를 동일한 광고 기간에 다시 생성해야 합니다.

이렇게 하면 암호화된 연결 상태 필드가 계정 키 데이터 순환과 동시에 변경됩니다.

BLE 광고는 아래와 같이 구성됩니다.

옥텟 데이터 유형 설명 필수 여부
0 uint8 버전 및 플래그 0x10 필수
1~t 계정 키 데이터 다름 필수
t+1~s 배터리 데이터 다름 선택사항
s+1 - var 무작위 결정 가능한 데이터 다름 계정 키 목록이 비어 있지 않은 경우 필수이며,그렇지 않은 경우
제외됩니다.

표 4.2: 무작위 결정 가능한 데이터가 있는 BLE 광고

무작위 결정 가능한 데이터에는 다음이 포함됩니다.

옥텟 데이터 유형 설명 필수 여부
0 uint8 입력란 길이 및 유형
0bLLLLTTTT
  • L = 암호화된 데이터의 길이
  • T = 유형
0bLLLL0110
  • 길이: 다름
  • 유형 = 0b0110
필수
1 - var 암호화된 데이터 다름 필수

표 4.2.1: 해결 가능한 임의 데이터

예를 들어 랜덤 해결 가능한 데이터에 암호화된 연결 상태 필드가 포함되어 있으면 복호화된 결과가 연결 상태 필드가 됩니다.

조작을 방지하기 위해 무작위 결정 가능한 데이터가 광고에 포함될 때 위의 계정 키 데이터를 약간 수정해야 합니다. 일반적으로 계정 키 필터를 빌드할 때 계정 키 필터를 솔트와 결합하여 값 V를 생성합니다. 대신 무작위 결정 가능한 데이터도 공지되는 경우 값 V는 다음과 같이 구성되어야 합니다.

 V = concat(account_key, salt, random_resolvable_data)

배터리 데이터와 임의 해결 가능한 데이터를 모두 알리는 경우에는 V를 다음과 같이 구성해야 합니다.

 V = concat(account_key, salt, battery_data, random_resolvable_data)

사용 중인 계정 키

연결 전환은 계정 기반이므로 제공업체는 현재 연결의 계정 정보를 BLE 광고에 포함해야 합니다. 현재 연결된 기기가 오디오 전환 시커인 경우 제공업체는 이 시커와 연결된 계정 키를 가져오고 이 계정 키를 사용하여 연결 상태 필드를 암호화할 수 있어야 합니다. 연결된 오디오 소스가 오디오 전환 시커인 경우 제공업체는 가장 최근에 사용한 계정 키를 사용해야 합니다.

제공업체는 계정 키 필터를 계산하기 전에 계정 패턴의 첫 번째 바이트를 수정하여 다음 중 하나를 사용 패턴에 포함해야 합니다.

  1. 0b00000100
    이 계정 키는 사용되지 않습니다.
    기본 키입니다 (계정 키 참고).
  2. 0b00000101
    이 계정 키는 가장 최근에 사용된 계정 키입니다.
    이 계정 키로 연결 상태 필드를 암호화했습니다. 현재 연결 상태에 관한 계정 키 정보가 없습니다. 이는 연결된 기기가 없거나 연결된 기기가 오디오 전환 시커가 아니라는 의미일 수 있습니다.
  3. 0b00000110
    이 계정 키는 사용 중인 계정 키입니다.
    연결 상태 필드는 이 계정 키로 암호화되며 현재 연결된 기기는 이 계정 키와 연결됩니다.

오디오 전환 페이로드 도식

아래 그림은 오디오 스위치 페이로드의 도식을 보여줍니다.

메시지

연결되면 시커와 제공업체가 메시지 스트림을 사용하여 오디오 전환 기능을 동기화하고, 연결 스위치를 트리거하고, 전환 환경설정을 설정 및 가져오고, 연결 상태에 알릴 수 있습니다. 아래와 같이 오디오 전환 관련 메시지 그룹과 메시지 코드를 만듭니다.

메시지 그룹 이름
오디오 전환 0x07

각 메시지 코드의 추가 세부정보는 다음 섹션에서 설명합니다.

메시지 코드 이름 멀티포인트만 사용 보내는 사람 응답자 암호화 MAC 확인
오디오 전환 기능 사용하기 0x10 구매 불가 모두 감지 둘 다 코드 0x11을 통해 구매 불가 구매 불가 구매 불가
오디오 전환 기능 알림 0x11 구매 불가 모두 감지 모두 감지 구매 불가 구매 가능 구매 가능
멀티포인트 상태 설정 0x12 구매 가능 구직자 제공업체 구매 불가 구매 가능 구매 가능
전환 환경설정 설정하기 0x20 구매 가능 구직자 제공업체 구매 불가 구매 가능 구매 가능
전환 환경설정 가져오기 0x21 구매 가능 구직자 제공업체, 코드 0x22를 통해 구매 불가 구매 불가 구매 불가
전환 환경설정 알림 0x22 구매 가능 제공업체 구직자 구매 불가 구매 불가 구매 불가
활성 오디오 소스(연결된 기기로) 전환 0x30 구매 가능 구직자 제공업체 구매 불가 구매 가능 구매 가능
다시 전환 (연결이 끊긴 기기로) 0x31 구매 불가 구직자 제공업체 구매 불가 구매 가능 구매 가능
멀티포인트 전환 이벤트 알림 0x32 구매 가능 제공업체 구직자 구매 불가 구매 불가 구매 불가
연결 상태 가져오기 0x33 구매 가능 구직자 제공업체, 코드 0x34 사용 구매 불가 구매 불가 구매 불가
연결 상태 알리기 0x34 구매 가능 제공업체 구직자 구매 가능 구매 불가 구매 불가
오디오 전환 시작 연결 알림 0x40 구매 불가 구직자 제공업체 구매 불가 구매 가능 구매 가능
사용 중인 계정 키 표시 0x41 구매 불가 구직자 제공업체 구매 불가 구매 가능 구매 가능
맞춤 데이터 보내기 0x42 구매 불가 구직자 제공업체 구매 불가 구매 가능 구매 가능
연결 해제 대상 설정 0x43 구매 가능 구직자 제공업체 구매 불가 구매 가능 구매 가능

표 4.3: 오디오 전환 메시지

MAC의 오디오 전환 메시지

메시지 인증을 제공하기 위해 Seeker에서 제공업체로 전송된 추가 데이터가 포함된 모든 오디오 전환 메시지에는 메시지 인증 코드가 필요합니다. MAC이 포함된 메시지를 수신하면 제공자가 메시지에 반응했는지 시커가 알 수 있도록 메시지를 확인해야 합니다.

메시지 인증에 성공하면 제공자가 메시지의 ACK를 전송해야 합니다.

옥텟 데이터 유형 설명
0 단위 확인 0xFF
1 단위 확인 0x01
2~3 Uint16 추가 데이터 길이 다름
4 단위 오디오 전환 0x07
5 단위 오디오 전환 메시지 코드 다름
6~ 추가 데이터 다름

실패하는 경우 제공자는 메시지의 NAK를 전송해야 합니다:

옥텟 데이터 유형 설명
0 단위 확인 0xFF
1 단위 NAK 0x02
2~3 Uint16 추가 데이터 길이 0x0003
4 단위 오류 이유 다름
5 단위 오디오 전환 0x07
6 단위 오디오 전환 메시지 코드 다름

제공업체가 발신자인 경우 MAC이 필요하지 않습니다.

오디오 전환 기능 사용하기

오디오 전환 제공업체 및 시커는 연결된 빠른 페어링 찾기/제공업체가 아래 메시지를 사용하여 오디오 전환을 지원하는지 여부를 확인할 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 오디오 전환 기능 사용하기 0x10
2~3 Uint16 추가 데이터 길이 0

표 4.3.1.0: 오디오 전환 기능 가져오기

오디오 전환 기능 알림

오디오 전환 기능 가져오기 메시지 코드를 수신하면 오디오 전환 시커/제공자는 다음 플래그 중 하나로 응답합니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 오디오 전환 기능 알림 0x11
2~3 Uint16 추가 데이터 길이 Seeker에서 전송하는 경우 20,
제공업체에서 4로 전송하는 경우 4
4~5 Uint16 오디오 전환 버전 코드 0이 아닌 값은 오디오 전환을 지원한다는 의미입니다. 현재 버전 (보안 강화 포함) 코드는 0x0102입니다.
0x0000으로 응답하거나 1초 동안 응답이 없으면 이 기기에서 오디오 전환이 지원되지 않음
6~7 flags 제공자의 오디오 전환 기능 플래그입니다.
Seeker에서 전송한 경우에는 이 두 바이트를 무시해야 합니다.
다름
오디오 전환 기능 플래그 참고
8~15 nonce 메시지
Seeker에서 보낸 경우에만 필요합니다.
다름
16~23 메시지 인증 코드
Seeker에서 보낸 경우에만 필요합니다.
다름

표 4.3.1.1: 오디오 전환 기능 알리기

오디오 전환 기능 플래그
  1. 비트 0 (옥텟 6, MSB): 오디오 전환 상태

    • 1(오디오 전환 상태가 켜져 있는 경우)
    • 0, 그렇지 않은 경우
  2. 비트 1: 멀티포인트 구성 가능성

    • 1(기기가 멀티포인트를 지원하고 켜기와 끄기 간에 전환할 수 있는 경우)
    • 0, 그렇지 않은 경우 (멀티포인트를 지원하지 않거나 멀티포인트가 항상 사용 설정됨)
  3. 비트 2: 멀티포인트 현재 상태

    • 1(멀티포인트가 사용 설정된 경우)
    • 0, 그렇지 않은 경우
  4. 비트 3: 온헤드 감지

    • 1. 기기에서 온헤드 감지를 지원하는 경우 (현재 온헤드 감지가 사용 중지된 경우에도 가능)
    • 0, 그렇지 않은 경우
  5. 비트 4: 온헤드 감지 현재 상태

    • 1, 온헤드 감지가 사용 설정된 경우
    • 0, 그렇지 않은 경우 (온헤드 감지를 지원하지 않거나 온헤드 감지가 사용 중지됨)
  6. 다른 비트는 모두 예약되며 기본값은 0입니다.

멀티포인트 상태 설정

오디오 전환 탐색자에서 사용자가 멀티포인트 기능을 사용 설정하거나 사용 중지할 수 있는 설정을 제공할 수 있습니다. Seeker는 아래 메시지를 사용하여 멀티포인트 상태를 제공업체에 설정합니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 멀티포인트 상태 설정 0x12
2~3 Uint16 추가 데이터 길이 17
4 단위 멀티포인트 상태 0: 멀티포인트 사용 중지
1: 멀티포인트 켜기
5~12 nonce 메시지 다름
13~20 메시지 인증 코드 다름

표 4.3.1.2: 멀티포인트 상태 설정하기

전환 환경설정

오디오 전환 탐색자는 멀티포인트의 전환 환경설정을 수정하고 아래 메시지를 사용하여 제공업체에 설정할 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 전환 환경설정 0x20
2~3 Uint16 추가 데이터 길이 18
4 flags 환경설정 전환 다름
멀티포인트 전환 환경설정 플래그 참고
5 고급 전환 설정
이 바이트는 예약되어 있으며 기본값은 0입니다.
다름
6~13 nonce 메시지 다름
14~21 메시지 인증 코드 다름

표 4.3.2.0: 전환 환경설정 설정하기

멀티포인트 전환 환경설정 플래그
  • 비트 0 (MSB): A2DP와 A2DP (기본값 0)
  • 비트 1: HFP 및 HFP (기본값 0)
  • 비트 2: A2DP와 HFP (기본값 0)
  • 비트 3: HFP 및 A2DP (기본값 1)
  • 비트 4 - 7: 예약됨
  • 위는 '새 프로필 요청' 대 '현재 활성 프로필'로 나타납니다.
    • 전환하지 않는 경우 0
    • 전환용 1개

환경설정 전환하기

오디오 전환 탐색자는 아래 메시지를 사용하여 제공업체에서 멀티포인트의 전환 환경설정을 쿼리할 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 전환 구성 가져오기 0x21
2~3 Uint16 추가 데이터 길이 0

표 4.3.2.1: 전환 환경설정 가져오기

전환 환경설정 알림

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 전환 환경설정 알림 0x22
2~3 Uint16 추가 데이터 길이 2
4 flags 환경설정 플래그 전환 다름
멀티포인트 전환 환경설정 플래그 참고
5 고급 전환 설정
이 바이트는 예약되어 있으며 기본값은 0이어야 합니다.
다름

표 4.3.2.2: 전환 환경설정 알림

활성 오디오 소스 (연결된 기기로) 전환

오디오 전환 탐색자는 아래 메시지를 사용하여 멀티포인트 제공업체에 연결된 기기 간에 활성 오디오 소스를 전환하도록 요청할 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 활성 오디오 소스 (연결된 기기로) 전환 0x30
2~3 Uint16 추가 데이터 길이 17
4 flags 활성 오디오 소스 이벤트 플래그 전환 다름
활성 오디오 소스 이벤트 전환 참조
5~12 nonce 메시지 다름
13~20 메시지 인증 코드 다름

표 4.3.3.0: 활성 오디오 소스 (연결된 기기로) 전환

활성 오디오 소스 이벤트 전환
  • 비트 0 (MSB): 이 기기로 스위치 1개, 두 번째 연결된 기기로 스위치 0개
  • 비트 1: 전환 후 기기로 전환할 때 1 재생, 나머지 경우에는 0 재생을 재개하면 제공자가 AVRCP 프로필을 통해 Seeker에 PLAY 알림을 전송합니다. 이전 상태가 전환되기 전에 PLAY가 아닌 경우 제공자는 이 플래그를 무시해야 합니다.
  • 비트 2: 전환된 기기에서 SCO 거부 1, 그렇지 않은 경우 0
  • 비트 3: 기기를 끄면 블루투스 연결이 끊어지고 0이 되면 블루투스가 0이 됩니다.
  • 비트 4 - 7: 예약되었습니다.

오디오 전환 탐색자가 자신의 상태를 올바르게 인식하지 못할 수도 있으므로, Seeker가 이미 활성 기기인 경우 제공업체가 '이 기기로 전환' 메시지를 수신할 수 있습니다. 이 경우 Seeker에 올바른 UI를 표시하기 위해 제공자가 오류 이유인 0x4 - 중복 기기 작업을 사용하여 NAK를 전송할 수 있습니다.

다시 전환 (연결 해제된 기기로 전환)

연결 전환이 원치 않으면 사용자가 전환을 되돌릴 수 있으며 특정 시나리오에서는 오디오 연결을 복원하여 중단을 최소화하는 것이 좋습니다. 탐색자는 아래 메시지를 사용하여 다시 전환을 트리거합니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 다시 전환 (연결 해제된 기기로 전환) 0x31
2~3 Uint16 추가 데이터 길이 17
4 단위 일정 전환 varies
0x01: 뒤로 전환
0x02: 뒤로 전환 및 재생 다시 시작
5~12 nonce 메시지 다름
13~20 메시지 인증 코드 다름

표 4.3.3.1: 다시 연결 (연결 해제된 기기로 전환)

다중 지점 제공업체의 경우 연결 전환을 위해 제공업체는 한 오디오 소스 기기와의 연결을 해제하고 다른 오디오 소스의 오디오 세션을 일시중지할 수 있습니다. 예를 들어 멀티포인트 헤드셋이 태블릿과 세 번째로 지원되는 오디오 스위치 기기에 연결되어 있다고 가정해 보겠습니다. 사용자가 스마트폰에 수신 전화가 있을 때 태블릿에서 동영상을 시청하고 있습니다. 휴대전화는 헤드셋에서 연결 스위치를 트리거합니다. 이는 휴대전화에 연결하기 위해 3번째 기기의 연결을 끊어야 하며, 동시에 태블릿의 미디어 세션을 일시중지하여 휴대전화에서 벨소리를 가져와야 합니다. 사용자가 통화를 거부하면 휴대전화에서 헤드셋에 '다시 전환하고 재생을 다시 시작'하라고 요청할 수 있습니다. 이 요청을 받으면 헤드셋이 세 번째 기기에 다시 연결하고 태블릿에서 일시중지된 동영상을 다시 재생해야 합니다.

멀티포인트 전환 이벤트 알림

오디오 전환 탐색자가 발생하는 멀티 포인트 전환 이벤트를 인식하기 위해 사용자에게 알림을 표시할 수 있습니다. 제공업체는 연결된 오디오 전환 탐색자에게 전환 이벤트에 관해 알려야 합니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 멀티포인트 전환 이벤트 알림
제공자는 오디오 전환 시커를 비오디오 전환 시커, 비오디오 전환 시커를 오디오로 전환 시커와 오디오 전환 시커를 오디오로 전환하는 것을 포함한 모든 전환 시 이를 전송해야 합니다.
0x32
2~3 Uint16 추가 데이터 길이 다름
4 단위 전환 이유 varies
0x00: 지정되지 않음
0x01: A2DP 스트리밍
0x02: HFP
5 단위 대상 기기 varies
0x01: 이 기기
0x02: 다른 연결된 기기
6~n UTT8 대상 기기 이름
대상 기기가 오디오 전환 시커인 경우, 시커가 전송한 이름을 사용함. 그 외의 경우 블루투스 이름(해당되는 경우)의 마지막 2바이트를 사용
다름

표 4.3.3.2: 멀티포인트 전환 이벤트 알림

연결 상태 가져오기

구직자가 제공업체에서 현재 연결 상태를 가져올 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 연결 상태 가져오기 0x33
2~3 Uint16 추가 데이터 길이 0

표 4.3.3.3: 연결 상태 가져오기

이 메시지를 수신한 후 제공자는 메시지 코드 0x34로 응답하고 연결 상태를 알립니다.

연결 상태 알림

BLE 광고 페이로드에 정의된 대로 멀티포인트 제공업체의 경우 연결 상태가 변경되는 경우(광고 패킷 변경 제외) 연결된 계정 사용자에게 동일한 계정 키를 사용하여 변경사항에 관해 알려야 합니다. 제공업체가 오디오 전환 시커와 오디오 외 시커에 연결된 경우 비오디오 스위치 시커가 활성 상태인 경우 제공자는 연결된 오디오 스위치 시커에게 연결 상태에 관해 알려야 합니다 (시커의 계정 키를 사용).

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 연결 상태 알림 0x34
2~3 Uint16 추가 데이터 길이 다름
4 단위 활성 기기 플래그 varies
0x00: 이 시커는 수동적이며 활성 기기에서 동일한 계정 키(
0x01)를 사용합니다. 이 시커는 활성 기기입니다
0x02: 이 시커는 수동적이며 활성 기기는 비오디오 스위치 시커입니다.
5~n 암호화된 연결 상태 다름
n+1 ~ n+8 nonce 메시지 다름

표 4.3.3.4: 연결 상태 알리기

암호화된 연결 상태 메시지

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

각 매개변수는 다음과 같습니다.

오디오 전환 시작 연결 알림

오디오 전환 제공업체는 오디오 스위치에서 연결 전환이 트리거되어 다른 반응(예: 오디오 전환 이벤트의 이어콘 사용 중지)이 있는지 알아야 할 수 있습니다. 시커는 제공업체에 오디오 연결 시작 연결임을 알리는 메시지를 전송합니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 오디오 전환 시작 연결 알림 0x40
2~3 Uint16 추가 데이터 길이 17
4 단위 오디오 전환 시작 연결 표시 varies
0: 이 연결은 오디오 스위치로 트리거되지 않았습니다.
1: 오디오 스위치에서 시작된 연결입니다.
5~12 nonce 메시지 다름
13~20 메시지 인증 코드 다름

표 4.3.4.0: 오디오 전환 시작 연결 알림

사용 중인 계정 키 표시

Seeker의 여러 계정 키 (예: 멀티 사용자)가 제공업체와 연결된 경우 Seeker는 아래 메시지를 사용하여 사용 중인 계정 키를 표시합니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 사용 중인 계정 키 표시 0x41
2~3 Uint16 추가 데이터 길이 22
4~9 UTT8 사용 중인 문자열 UTF8('사용 중')
10~17 nonce 메시지 다름
18~25 메시지 인증 코드 다름

표 4.3.4.1: 사용 중인 계정 키 표시

이 메시지를 수신하면 제공업체는 메시지 인증 코드를 확인하여 어떤 계정 키가 사용되고 있는지 알 수 있습니다.

맞춤 데이터 보내기

활성 오디오 전환 시커는 맞춤 데이터 바이트로 오디오 스트림의 정보 (예: 오디오 사용)를 캡슐화하고 아래 메시지를 사용하여 제공업체에 전송할 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 맞춤 데이터 보내기 0x42
2~3 Uint16 추가 데이터 길이 17
4 단위 맞춤 데이터 다름
5~12 nonce 메시지 다름
13~20 메시지 인증 코드 다름

표 4.3.4.2: 맞춤 데이터 보내기

맞춤 데이터를 수신하면 제공업체는 광고 패킷을 업데이트하여 맞춤 데이터를 포함합니다. 멀티포인트 제공업체의 경우 동일한 계정 키를 사용하여 연결된 다른 Seeker에 대한 연결 상태 변경을 알려야 합니다.

연결 대상 삭제 설정

멀티포인트 헤드셋에서 연결을 끊고자 하는 기본 연결이 최근 사용되지 않은 경우, 오디오 전환 탐색자는 아래 메시지를 사용하여 어떤 기기를 드롭할지 제공업체에 알릴 수 있습니다.

옥텟 데이터 유형 설명
0 단위 오디오 전환 0x07
1 단위 연결 대상 삭제 설정 0x43
2~3 Uint16 추가 데이터 길이 17
4 단위 연결된 연결된 기기를 드롭합니다. 다름
1: 이 기기
5~12 nonce 메시지 다름
13~20 메시지 인증 코드 다름

표 4.3.4.3: 연결 해제 목표 설정하기

참조 구현

참조 구현은 주변 삽입된 SDK 라이브러리를 참조하세요.