web-dev-qa-db-ja.com

1つのAndroidデバイスから別のデバイスにオーディオをストリーミングする方法Android Bluetooth経由のデバイス?

Bluetooth経由でオーディオをストリーミングすることは可能ですか?私の研究中に、それはA2DP(Advanced Audio Distribution Profile)を使用してのみ可能であることがわかりました。また、すべてのAndroidデバイスはA2DPをサポートしていますか?そうでない場合、bluetoothを使用して2つのAndroidデバイス間でオーディオをストリーミングできますか?これを理解してください。

私は次のリンクを調べました:

26
Hardik Joshi

Bluetooth経由でオーディオをストリーミングできますか?

以下の種類のスレッドは、デバイス間でBluetooth経由でオーディオをストリーミングする可能性を示していますが、Googleの公式が a2dpストリーミングスタッターを修正したことを発表するまで成功率に疑問符がありましたN7の問題。次のリリースでは修正が必要です。問題についてごめんなさい。

4.2.2でのA2DPの低品質の修正

Galaxy Nexusで4.2にアップグレードすると、Bluetoothの音質が低下します

Nexus 7 FloのAndroid 4.3 Bluetoothオーディオ品質修正

すべてのAndroidデバイスはA2DPをサポートしていますか?

サポートの互換性については、 Android開発者向けサイト に記載されており、API Level-11 with appropriate features.しかし、私は XDAトレッド OPがAndroid 2.1は、以前のAPIレベルでもサポートされていますが、OPが直面している問題を意味します。

理解するのが理にかなっていることを願っています。A2DPの互換性とその成功に関する詳細情報を入手するには、 XDAフォーラム を参照することをお勧めします。

11
RobinHood

私の意見では、A2DPが適切に機能しない場合は、下位層に移行した方がよいでしょう。また、あらゆる形式の日付を送信するために使用できる基本ストリームを作成できます。 J2MEデバイス間でBluetooth経由でバイトストリームを送信することに成功しました。

両方のデバイスにアプリをインストールすることが許容される場合、ソケットを介して相互に通信するBluetoothサーバーとクライアントを作成するサンプルコードがあります。ソケットが確立されると、オーディオストリームを送信できます:)

以下にいくつかのコアコードを示します。

1)サーバーデバイス:

// you can generate your own UUID and use it as an port to eatablish a socket
private static final UUID MY_UUID = UUID.fromString("20687DAD-B023-F19E-2F60-A135554CC3FD")

BluetoothServerSocket serverSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(NAME_INSECURE, MY_UUID);

これでserverSocketができました。通常のServerSocketとして使用してください。

BluetoothSocket socket = serverSocket.accept();

このInputStreamからOutputStreamBluetoothSocketを取得し、HttpConnectionと同様にオーディオストリームを送信できます。

2)クライアントデバイス:

既にBluetoothDeviceを取得していると仮定します

// you should implement the method getBlutoothDevice
BluetoothDevice device = getBluetoothDevice();
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);
1
exloong

また、プロファイルに依存しない基本的なSCO=接続を介してオーディオをストリーミングできます。ただし、A2DPは、音楽のストリーミング専用に開発されたプロファイルであることに注意してください。あなた自身はA2DPと比較して品質に苦しむでしょう。

A2DPをサポートしていないデバイスに音楽をストリーミングしていない限り、私は確かにA2DPを使用します。本当に他の唯一のオプションはSCOリンクを使用することです。

1
TwinPrimesAreEz