SBCコーデックでA2DPを使用すると生成されるビットレート主にビットプールパラメータによって異なります
今私のLinuxコンピュータでは、私の目標は、Bluetooth A2DPレシーバーでオーディオを再生するときのビットプール値を理解することです。 Wiresharkを使用してこのBluetoothレシーバーに接続している間にフレームをキャプチャし、AVDTPプロトコルフレームでBluetoothレシーバーのフレームインポート/設定機能を見つけました。実際のA2Dpコーデック構成を表示できます。
Service: Media Codec - Audio SBC (44100 | JointStereo | block: 16 | subbands: 8 | allocation: Loudness | bitpool: 2..53)
ビットプールの範囲値は出てきますが、再生中のラジオ接続状態が悪いと値が変わることもあります。
ゲーム中に現在のビットプールを取得する方法は?
再生前と再生中にBluetoothフレームをキャプチャしましたが、ビットプールの現在値を提供するフレームが見つかりませんでした。 (再生中のほとんどのフレームはHCI H4フレームです。)
答え1
オーディオを再生するときは、bluemanアプレットを使用してオーディオプロファイルA2DPまたはSCOを選択できます。 A2DPプロファイルを選択する必要があります。その後、フレームをデコードするためには、ワイヤーシャークを使用してすべてのBluetooth接続プロセスを記録する必要があります。それ以外の場合、デコードされたフレームはWiresharkにL2CAPまたはHCI H4フレームとして表示されます。フレームを開くと見えます。
フレームが「接続ハンドル」セッションに属していません。
したがって、BTセッション全体を録音した後にSBCフレームを取得できます。ビットプール情報はこれらのフレームに提供されます。
答え2
ビットプール値はフレームの3番目のバイトで、最初のバイトは常に9Cです。