[以C#将音频流传输到蓝牙设备

问题描述 投票:1回答:2

我正在尝试将音频以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。行说“套接字操作失败,因为目标主机已关闭”。查看屏幕截图:

Socket Exception

[我也曾尝试通过NetworkStream在使用BluetoothService.SerialPort进行设置时向扬声器发送数据,但它不会播放任何内容-没有噪音或静态声音。

我的运行假设是,使用32feet.net很难做到这一点,我必须在代码中编写a2dp规范。我认为使用了32feet.net库,以便我可以告诉操作系统将扬声器用作输出设备,而不是将音频输出代码内控制作为受支持的功能。

请帮助!有人做过吗?

如果我通过BluetoothService.SerialPort连接将兼容a2dp的流发送到设备,它甚至还能工作吗?

A2DP规范:https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=8236

感谢您的帮助!

bluetooth audio-streaming 32feet
2个回答
0
投票

更新:

在32feet.net库中这是不可能的,您只能使用32feet.net中的setService方法调用将设备设置为与Microsoft音频服务通话。>

www.nudoq.org /#!/ Packages / 32feet.NET / InTheHand.Net.Personal / MicrosoftSdpService / M / SetService

此MS服务管理向设备的A2DP输出。使用C#中的此库无法将代码中的音频直接从代码输出到Bluetooth设备。


0
投票

此MS服务管理向设备的A2DP输出。使用C#中的此库无法将代码中的音频直接从代码输出到Bluetooth设备。

© www.soinside.com 2019 - 2024. All rights reserved.