我认为,如果A2DP不能正常工作,我们最好移动到底层,我们可以创建一个基本流,用于发送任何形式的日期。我成功地通过J2ME设备之间的蓝牙发送字节流。
如果在两个设备上安装应用程序是可以接受的,我已经创建了蓝牙服务器和客户端通过套接字相互通信的示例代码,一旦套接字建立,您可以发送音频流:)
这里有一些核心代码:
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();
,然后你可以从这个BluetoothSocket
InputStream
和OutputStream
和发送音频流就像HttpConnection
2)客户端设备:
假设你已经拿到了BluetoothDevice
// you should implement the method getBlutoothDevice
BluetoothDevice device = getBluetoothDevice();
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);
1.几乎所有设备都支持A2DP,A2DP和HFP(免提)配置文件是手机需要的基本配置文件。 2. Android 4.2.1在蓝牙上存在音频流问题,这是一个波涛汹涌的音频,在谷歌最新版本中得到修复。 3.早先大多数人曾尝试使用bluez(开源蓝牙)协议栈,但从JB开始,bluez被broadcomm协议栈取代。您需要在手机中实现音频接收器配置文件。使用Alljoyn可以在2台设备之间进行音频流式传输,请查看[link](https://www.alljoyn.org/about/core-services) – ashish
谢谢您的链接@ashish。我正在经历这个。并会让你知道发生了什么。再次感谢。 –
音频是否需要通过蓝牙进行流式传输?使用[WiFi-Direct](http://developer.android.com/guide/topics/connectivity/wifip2p.html)怎么样?这实际上会给你更多的灵活性和功能。 – BigMacAttack