【发布时间】:2015-09-14 22:30:56
【问题描述】:
我正在尝试在 C# 代码中将音频流式传输到蓝牙设备。我选择了 32feet.net 库来帮助解决这个问题。我能够很好地配对蓝牙扬声器,然后我使用下面的代码连接到设备。
globalClient.BeginConnect(device.DeviceAddress, BluetoothService.SerialPort, new AsyncCallback(BluetoothConnectedAsyncHandler), device);
异步回调方法:
private void BluetoothConnectedAsyncHandler(IAsyncResult result)
{
BluetoothDeviceInfo connectedDevice = (BluetoothDeviceInfo)result.AsyncState;
globalClient.EndConnect(result);
if (result.IsCompleted)
{
NetworkStream btStream = globalClient.GetStream();
}
}
这一切都很好,但是当我尝试将服务从 BluetoothService.SerialPort 设置为 BluetoothService.AudioSource 时,我在“globalClient.EndConnect(result);”上收到了一个 SocketException行说“由于目标主机关闭,套接字操作失败”。见截图:
当使用 BluetoothService.SerialPort 设置扬声器时,我还尝试通过 NetworkStream 向扬声器发送数据,但它不播放任何内容 - 没有噪音或静电。
我的假设是,这不能用 32feet.net 轻松完成,我必须在代码中编写 a2dp 规范。我认为使用了 32feet.net 库,以便我可以告诉操作系统将扬声器用作输出设备,而不是在代码中控制音频输出作为支持的功能。
请帮忙!有人做过吗?
如果我通过 BluetoothService.SerialPort 连接向设备发送符合 a2dp 的流,它甚至可以工作吗?
A2DP 规格:https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=8236
感谢您的帮助!
【问题讨论】:
-
您是否找到了通过蓝牙将音频发送到扬声器的方法?
-
不,请参阅下面的更新
标签: bluetooth audio-streaming 32feet