【问题标题】:Stream Audio to Bluetooth Device in C#在 C# 中将音频流式传输到蓝牙设备
【发布时间】: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


【解决方案1】:

更新:

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

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

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

【讨论】:

  • 还是这样吗
  • 我会这么认为,但这项调查已经有 5 年历史了,微软正在将大量 Windows 10 功能(控制面板等)转换为使用基于 C# 的视图布局和渲染 - 所以它可能有一些新的库或 API 可用。让我们知道您的发现!
猜你喜欢
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 2013-04-27
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
相关资源
最近更新 更多