objective-c - 如何将通过套接字接收到的数据放入音频队列并播放

标签 objective-c ios core-audio audio-streaming

任何人都可以建议我如何将通过套接字接收到的音频数据放入音频队列中进行播放。 目前我正在使用 GCDAsyncSocket 发送和接收数据。我在录音机回调方法中通过套接字发送数据。我在 GCDAyncSocket didReadData: 方法中接收数据,但之后我不知道如何播放它。

我还想知道如何使用音频队列同时进行录音和播放。

非常感谢任何帮助。

最佳答案

您不能将数据直接放入音频队列中。您可以做的是将从网络接收到的任何数据放入您自己的缓冲区中,然后在音频队列缓冲区回调内从缓冲区复制数据(如果有足够的数据)。

如果正确设置 Audio Session ,您可以使用标准音频队列 API 同时播放和录制,但音频队列的延迟可能比使用 RemoteIO 音频单元 API 进行录制和播放要高得多。在最新版本的 iOS 中,音频单元还包括一个回声消除单元,这在同时播放和录制的情况下可能很有用。

关于objective-c - 如何将通过套接字接收到的数据放入音频队列并播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9415912/

相关文章:

ios - iOS 设备的总 RAM 大小

ios - 如何使用 UIImagePickerController 检索图像文件名?

ios - KVO 不工作(观察另一个类的属性)

android - 如何根据口味更改 Flutter 应用名称?

ios - 如何以编程方式执行 Unwind segue?

swift - 如何获取用于在 Swift 中设置 AudioUnitSetProperty 的 inDataSize?

ios - 混合 midi 文件,每个文件都有自己的声音字体

objective-c - 如何使用Reachability类来检测网络状态?

ios - 实例成员 'image' 不能用于类型 'UIImageView'

python - 用于驱动音频单元乐器的简单音频单元主机