
[英]AVAudioPlayer fails with error “The operation couldn’t be completed. (OSStatus error 2003334207.)”
[英]The Operation Couldn’t Be Completed. (OSStatus Error 2003334207.)
我知道这是一个重复的问题,但我没有找到任何适合我的解决方案。
我正在使用AVAudioPlayer使用url播放音频,我从Firebase获得。 我从Firebase得到的url是:
如果我在谷歌浏览器上打开这个 url它会给我我的音频。 但是当我使用AVAudioPlayer尝试它时,它给了我以下错误:
操作无法完成。 (OSStatus 错误 2003334207。)
这就是我正在做的事情:
Button {
vm.startPlaying(url: audioURL ?? URL(fileURLWithPath: ""))
} label: {
Image(systemName: startAudio ? "pause.fill" : "play.fill")
.foregroundColor(.black)
.padding()
.background(
RoundedRectangle(cornerRadius: 10)
.foregroundColor(.gray)
.frame(width: 100)
)
}
和 function startPlaying() :
func startPlaying(url : URL) {
do {
audioPlayer = try AVAudioPlayer(contentsOf : url)
audioPlayer.prepareToPlay()
audioPlayer.play()
} catch {
Helper.shared.printDebug("Playing Failed")
Helper.shared.printDebug(error.localizedDescription) // error: The operation couldn’t be completed. (OSStatus error 2003334207.)
}
}
您用于 AVAudioPlayer 的初始化程序需要 URL 到本地文件。 您不能将 URL 传递给远程服务器上的文件。 引用文档:
Declaration
init(contentsOf url: URL) throws
Parameters
url
A URL that identifies the local audio file to play
您需要在播放之前将数据下载到本地文件,或使用支持流式音频播放的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.