私はスマートフォン用の Bluetooth 経由でストリーミング オーディオをミキシングすることを含む興味深いプロジェクトを研究しています。それは私が最も経験を積んでいるので、Android から始めます。私はAndroidでBluetoothを1、2回使用しましたが、私の経験では、ハニカム以前のAPIではアプリケーションがA2DPまたはHFPオーディオシンクに接続できないことがわかりました。必要なUUIDを使用して、HTC EVOのジンジャーブレッドでこれをすでに試しましたが、役に立ちませんでした。
公式ドキュメントによると、API LEVEL 11の時点でこれが可能になりましたが、サポートが Honey Comb でのみ開始されたため、この API レベルを提供する唯一のデバイスは、後で Ice Cream Sandwich デバイスになると確信しています。私は完全なアマチュアなので、すぐに開発グレードの Ice Cream Sandwich デバイスにミットを取り付けることはできそうにありません。私は今、概念を証明しようとしているだけなので、後のリビジョンにコードを適応させることは問題ではありません。
理想的には、ペアリングされた A2DP デバイスの入力/出力ストリームを使用して、PCM データを直接読み書きしたいと考えています。ただし、今すぐこれを行いたい場合は、回避策を使用する必要があります。
私の考えは、私の理解によれば、マイクからオーディオ入力を読み取り、オーディオ出力をスピーカーにプッシュする、 AndroidのAudioRecordおよびAudioTrackクラスを使用することです。どちらの場合も、A2DP デバイスが接続されていない場合、これらの構造はデバイスのマイクとスピーカーをそれぞれ使用します。ただし、A2DP または HFP デバイスが接続されている場合、システムがこれらの構造体をそれぞれの入力と出力をヘッドセットのマイクとスピーカーに設定するかどうかはわかりません。もしそうなら、これを効果的にコードに組み込み、後で調整して Ice Cream Sandwich の直接サポートを利用することができます。
この分野で比較的豊富な経験を持つ人で、このアプローチがうまくいくと思う人はいますか? 座って時間の無駄になる可能性のあるコードを書く前に、誰かが成功したかどうかを知りたいです。