ヘッドフォンの操作
ファスト ペアリングでのヒアラブル コントロールは、Android の重要なヒアラブル機能のアクセス制御を強化することを目的としています。これを実現するために、メッセージ ストリーム内に新しいメッセージ グループのヘッドフォン コントロールが追加されました。
メッセージ グループ名 | 値 |
---|---|
ヘッドフォンの操作 | 0x08 |
アクティブ ノイズ コントロール
アクティブ ノイズ コントロールは、プレミアム ヘッドフォンの重要な機能になりつつあります。検索側のファスト ペアリングには、状態の設定、取得、保存を行う UI とロジックがあり、状態はプロバイダ側に保存されます。イベント ストリームが接続されたときに、プロバイダがセッション ノンスを送信することは必須です。そのために、以下のメッセージ コードが定義されています。
メッセージ コード名 | 値 | ギフトの送り主 | 回答者 | MAC | ACK |
---|---|---|---|---|---|
ANC の状態を取得する | 0x11 | Seeker | プロバイダ | N | N |
ANC の状態を設定する | 0x12 | Seeker | プロバイダ | Y | Y |
ANC の状態を通知する | 0x13 | プロバイダ | Seeker | N | N |
シーカーがプロバイダに接続したとき、またはプロバイダが「ANC の状態を取得」メッセージを受信したときに、プロバイダは ANC の状態を通知して、ANC の機能と保存された状態をシーカーに知らせることができます。メッセージは次のとおりです。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | ヘッドフォンの操作 | 0x08 |
1 | uint8 | ANC の状態を通知する | 0x13 |
2 ~ 3 | uint16 | 追加データの長さ | 0x04 |
4 ~ 7 | ANC コントロール データ | 変動あり |
ANC 制御データ
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | さまざま、このバージョンでは 0x02 |
1 | フラグ | UI 切り替え 各モードは、フラグビットの値に応じて有効(1)または無効(0)になります。 ビット 0(MSB): 透過 ビット 1: 予約済み(ビットを 0 に設定) ビット 2: オフ ビット 3: 予約済み(ビットを 0 に設定) ビット 4: ANC |
変動あり |
2 | フラグ | 設定可能な切り替え 上記の UI 切り替えビットの一部またはすべてをここで設定して、現在有効になっているものを示します。 |
変動あり |
3 | フラグ | 現在の状態 設定できるのは 1 ビットのみです。このバイトの値はゼロ以外にする必要があります。 |
変動あり |
シーケンサーは、ANC コントロール データに応じて切り替え UI を表示します。
例 1: プロバイダが 3 ウェイ ANC(透明 - オフ - ANC)をサポートしており、イヤホンを装着している場合、すべてのモードが設定可能で、現在の状態はオフです。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | 0x01 |
1 | フラグ | UI 切り替え | 0b10101000 |
2 | フラグ | 設定可能な切り替えボタン | 0b10101000 |
3 | フラグ | 現在の状態 | 0b00100000 |
例 2: プロバイダが 3 つの ANC(透明 - オフ - ANC)をサポートしており、現在 1 つのイヤホンのみ装着されているか、イヤホンを装着していないため、モードを設定できず、現在の状態はオフです。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | 0x01 |
1 | フラグ | UI の切り替え | 0b10101000 |
2 | フラグ | 設定可能な切り替えボタン | 0b00000000 |
3 | フラグ | 現在の状態 | 0b00100000 |
ユーザーが切り替えボタンを切り替えると、Seeker は現在の状態を次のようにプロバイダに設定します。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | ヘッドフォンの操作 | 0x08 |
1 | uint8 | ANC の状態を設定する | 0x12 |
2 ~ 3 | uint16 | 追加データの長さ | 様々、0x04 または 0x14 |
4 | uint8 | シーカーのバージョン コード | 様々、0x01 または 0x02 |
5 | フラグ | ANC の設定可能なモード(UI 切り替え) | 変動あり |
6 | フラグ | ANC が有効なモード(設定可能な切り替え) | 変動あり |
7 | フラグ | 新しい ANC モードのインデックス(新しい状態) | 変動あり |
8 ~ 23 | 予約済み | 変動あり |
バイト 4 ~ 7 は、実際には、Seeker 側から送信された ANC 制御データです。追加の長さの値が 0x14 に設定されている場合、予約済みバイト 8 ~ 23 が存在し、これらのバイトが受信された場合、プロバイダはバイトを無視する必要があります。追加の長さの値が 0x04 に設定されている場合、予約済みバイトは存在しません。
プロバイダは「ANC 状態を設定」メッセージを受信すると、確認応答を行い、接続されているすべてのシーカーに ANC 状態を通知する必要があります。ユーザーがヘッドセットのジェスチャーまたはコンパニオン アプリで設定を変更した場合、プロバイダは接続されているすべてのシーカーにも通知を送信する必要があります。