CoreBluetooth 和音频流

Posted

技术标签:

【中文标题】CoreBluetooth 和音频流【英文标题】:CoreBluetooth and audio stream 【发布时间】:2012-08-29 19:28:22 【问题描述】:

我能否使用 CoreBluetooth 框架将音频流从一台 ios 设备传输到另一台 iOS 设备(例如从 4s 到新 iPad)。也许 BLE 对媒体流来说太慢了?

【问题讨论】:

【参考方案1】:

蓝牙低功耗 (BLE) 不适用于流式传输数据!

如果您想流式传输,您必须使用蓝牙 2.X+EDR 和适当的配置文件。因此,如果您想流式传输音频,则需要耳机或 A2DP 配置文件。

CoreBluetooth API 只允许访问 BLE 设备。

【讨论】:

那么如果我想使用经典蓝牙而不是低功耗,我可以使用什么sdk? 在这种情况下必须是一个强词。 Wikipedia 指定吞吐量为 0.26 Mbit/s (en.wikipedia.org/wiki/Bluetooth_low_energy#Technical_details),那么为什么不使用音频呢?此外,Apple 并未指定您可以通过 BLE 发送的内容。 遗憾的是,iOS 对您可以从程序中使用的蓝牙经典配置文件有极端限制,因此实际上您有三个选择:1) 有很多钱并选择 MFi 程序 2) 使用免提配置文件3) 尝试通过 BLE 进行流式传输。【参考方案2】:

音频流不会有任何好处,因为 BLE 可以一次传输 20 个字节的数据包,在 iOS5 上每次传输之间有 37.5 毫秒的延迟。因此,这将是滞后的,并且毫无用处。缓冲数据总是有可能的,但归根结底,这不是流式传输音频的好方法。

|packet| --- 37.5ms --- |packet| --- 37.5ms --- |packet...

【讨论】:

我能够在超过一分钟的时间内以大约 10 毫秒的延迟每秒发送 20 次 32 位值。这似乎与您的帖子不一致?此外,*** (en.wikipedia.org/wiki/Bluetooth_low_energy#Technical_details) 指定了大约 6 毫秒的延迟,这似乎更符合我的经验。 是的,但正如我所说,IOS5 不允许低于 37.5ms 的延迟,不关心 BLE 标准 好的,我的实验是在 iOS 6 上进行的。那里似乎有所改进。 是的,iOS6 的连接间隔更好

以上是关于CoreBluetooth 和音频流的主要内容,如果未能解决你的问题,请参考以下文章

使用 ffmpeg 和 python 将视频中的所有音频流提取到单独的音频文件中

如何将系统麦克风音频流传输到附加设备的麦克风音频流

音频播放和暂停 Ionic Creator 应用程序(音频流 - 广播应用程序)

Linux 中的音频流管理

如何桥接字节数组和音频流?

如何在 iOS 中找到蓝牙音频设备