私はLinuxが初めてで、Bluetoothスクリプトも初めてです。私がこれまでに発見したのは次のとおりです。
- BluezはデフォルトのBTスタックです。
- BluezToolsは、Bluezをより簡単に操作するために使用できるユーティリティのセットです。
- DBusは、ハードウェアと直接対話しながらBluezが接続するインターフェイスです。
- PulseAudioは、システムでオーディオを生成するサブシステムです。
意味あり。それで、BTヘッドフォンの特定のプロファイルに直接接続できるコマンドを発行できるようにするために(すべてペアリングして信頼した後)、BlueToothヘッドフォンのセットがあるとしましょう。
私が考えている技術的なパスは次のようなものです:
- ヘッドフォンをオンにします。
- BluezToolsコマンドを発行します-bt -audio -cなど
- デバイスが後のサービスに接続するのを待ちます
- PulseAudioは新しい出力デバイスを取得するはずです
- 別のコマンドを発行して、オーディオを元の状態から新しい出力オーディオ(BTヘッドフォン)に変更します。
- シームレスなリスニング体験をお楽しみください。
これはすべて論理的に思えますが、実際の実装はこのようなものではなく、なぜWHYを探しているので、問題をよりよく理解して、修正して試すことができます。
これが実際に起こることです:
- ヘッドフォンをオンにします。
- BluezToolsコマンドを発行します-bt -audio -cなど
- デバイスが後のサービスに接続するのを待ちます
- PulseAudioは新しい出力デバイスを取得するはずです
- PulseAudioコマンドを発行して、オーディオプロファイルを電話品質から高音質に変更します。
これについて少し詳しく説明します。Bluetoothヘッドセットは、2つの品質モード(電話と高忠実度)を提供します。音楽を聴くのに本当に適しているのは1つだけです。
BTヘッドフォンは各品質モードをサービスとして公開すると思いますが、これは正しいですか?この仮定は間違っている可能性がありますが、私は次のようなものを期待します
bt-audio -c highFidelityProfile
または
bt-audio -changeProfile highFidelityProfile
代わりに、BluezがデバイスへのRAW接続を処理するだけのようで、そこから次のコマンドを発行する必要があります:pacmd set-card-profile $ INDEX a2dp
これは根本的に間違っているようです。なぜオーディオサブシステムの品質管理が原因で、パルスやアルサ、または他のサウンドサブシステムの別の実装が必要になるのですか?
私は何が欠けていますか?Bluez / BluezToolsなどを使用して特定のプロファイルに直接接続できないのはなぜですか?