在 AVAudioEngine 中从网络流式传输数据,这可能吗?

Stream data from network in AVAudioEngine, is it possible?

我有一个应用程序,我在其中使用 AVAudioEngine 通过 AVAudioPlayerNodesAVAudioFiles 播放本地文件系统中的文件。这工作得很好。

现在我想让我的设置也支持从 Internet 上的服务器流式传输 MP3 文件。

到目前为止我尝试了什么

我希望我可以从指向网络地址的 NSURL 对象创建某种缓冲区,然后我可以将其用于我的 AVAudioPlayerNode.

我大体上搜索了 Stack Overflow and the internet,但没有找到关于如何实现这一目标的任何好的提示。

我知道 AVAudioEngine 阵容包括:

这个错误奖励我:

Error Domain=com.apple.coreaudio.avfaudio Code=2003334207 "The operation couldn’t be completed. (com.apple.coreaudio.avfaudio error 2003334207.)" UserInfo=0x7fbfab424480 {failed call=ExtAudioFileOpenURL((CFURLRef)fileURL, &_extAudioFile)}

我的问题(只是为了说清楚:-))

你们当中有聪明人知道如何使用 AVAudioEngine 从 Internet 上的服务器流式传输 MP3 文件吗?

还是我应该放弃并为此使用 AVPlayer

期待您的来信。

Apple 的文档没有具体说明它是否可以与在线托管的 mp3 一起使用,但是当我尝试用 mp3 url 初始化 AVAudioFile 时,它立即崩溃并出现致命异常。我认为这回答了你的问题。