【发布时间】:2019-07-22 19:40:38
【问题描述】:
我正在尝试从包含 M4A 文件的 URL 初始化和播放 AVAudioPlayer。文件如下:
这是我用来初始化所说的 AVAudioPlayer 的代码:
var player: AVAudioPlayer!
let preview = "https://audio-ssl.itunes.apple.com/apple-assets-us-std-000001/AudioPreview123/v4/e8/04/59/e80459fb-9429-3323-4f43-ce12d5df1be5/mzaf_5785529815715338950.plus.aac.p.m4a"
func loadAudio() {
do {
self.player = try AVAudioPlayer(contentsOf: URL(string: preview!)!, fileTypeHint: AVFileType.m4a.rawValue)
self.player.play()
} catch let error {
print("Error:", error.localizedDescription)
}
}
@IBAction func buttonPressed(_ sender: Any) {
loadAudio()
}
当按下与名为 buttonPressed(sender:) 的 IBAction 关联的按钮时,我收到以下错误:
The operation couldn’t be completed. (OSStatus error 2003334207.)
我已尝试对有关此错误的类似问题进行故障排除,但似乎没有一个可以解决我的问题。
编辑:
我尝试用AVPlayer 做类似的事情,虽然它没有抛出错误,但文件根本没有播放。下面是一些示例代码:
var avPlayer: AVPlayer!
let preview = "https://audio-ssl.itunes.apple.com/apple-assets-us-std-000001/AudioPreview123/v4/e8/04/59/e80459fb-9429-3323-4f43-ce12d5df1be5/mzaf_5785529815715338950.plus.aac.p.m4a"
func loadAudio() {
if let url = NSURL(string: preview!) {
self.avPlayer = AVPlayer(url: url as URL)
self.avPlayer.volume = 1.0
self.avPlayer.play()
}
}
@IBAction func buttonPressed(_ sender: Any) {
loadAudio()
}
【问题讨论】:
-
AVAudioPlayer 不播放远程文件。你想要一个 AVPlayer。
-
我尝试用
AVPlayer做类似的事情,当我打电话给player.play()时播放器根本没有玩。如果有用,我可以添加一些代码。 @马特 -
我不明白为什么会有用。我将您的代码更改为使用 AVPlayer,它工作正常。
标签: swift avfoundation avaudioplayer core-audio