我尝试创建类似的AVAudioPlayer
let url = URL(string: "https://storage.googleapis.com/preview-public/project/e45d3194bb7f4768984fd53acc833600/fa13293c27314b448a815ebd42176684/audio-gnvY.m4a")!
do {
let player = try AVAudioPlayer(contentsOf: url)
} catch (let err) {
print("err", err)
}
我得到这个错误:Error Domain=NSOSStatusErrorDomain Code=2003334207 "(null)"
。
我也试过
do {
let _ = try url.checkResourceIsReachable()
} catch (let err) {
print("err", err)
}
我得到这个错误:CCD_ 2。
我不知道这个网址可能出了什么问题。
图像通常从同一个bucket加载,尽管如果我在图像URL上检查checkResourceIsReachable()
,它会返回相同的错误。(但我用CGImageSourceCreateWithURL(url as CFURL
加载图像,它可能与AVAudioPlayer没有相同的检查。(无论如何,我迷路了。有什么想法吗?
AVAudioPlayer仅适用于本地file:
URL。它不接受需要流式传输的远程URL。为此,请使用AVPlayer。
我有演示在尝试运行这个代码音频是完美的
let audiourl = URL(string: "https://storage.googleapis.com/preview-public/project/e45d3194bb7f4768984fd53acc833600/fa13293c27314b448a815ebd42176684/audio-gnvY.m4a")
let player = AVPlayer(url: audiourl!)
let playViewController = AVPlayerViewController()
playViewController.player = player
self.present(playViewController, animated: true){
playViewController.player!.play()
}
在AVAudioPlayer中,URL是本地文件的路径。
https://developer.apple.com/documentation/foundation/url