我有一个应用程序,其中我使用AVAudioEngine
通过使用AVAudioPlayerNodes
和AVAudioFiles
来播放本地文件系统中的文件。这工作得很好。
现在,我想启用我的设置,使其还支持来自Internet上服务器的MP3文件流。
我到目前为止已经尝试过的内容
我希望可以从指向网络地址的NSURL
对象创建某种缓冲区,然后将其与AVAudioPlayerNode
一起使用。
我已经搜索了Stack Overflow和internet,但没有找到有关如何实现此目的的任何好技巧。
我知道AVAudioEngine
阵容包括:
AVAudioFile
或AVAudioBuffer
中的音频。我已经在我的“本地文件设置”中使用了AVAudioFile
。 var fileError: NSError? = nil
let file = AVAudioFile(forReading: someURL, error: &fileError)
if fileError != nil {
fileError
}
这会奖励我这个错误:
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
,它就会立即崩溃,并出现致命异常。我认为这回答了您的问题。
关于ios - 在AVAudioEngine中从网络流传输数据,可以吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30862664/