我正在尝试从包含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()
}
按下与名为IBAction
的{{1}}关联的按钮时,出现以下错误:
buttonPressed(sender:)
我已尝试解决有关此错误的类似问题,但似乎没有一个能解决我的问题。
编辑:
我尝试使用The operation couldn’t be completed. (OSStatus error 2003334207.)
做类似的事情,尽管它没有引发错误,但是文件根本没有播放。这是一些示例代码:
AVPlayer
答案 0 :(得分:0)
AVAudioPlayers不播放远程内容。使用AVPlayer。
var player: AVPlayer!
let preview = ....
func loadAudio() {
self.player = AVPlayer(url:URL(string: preview)!)
self.player.play()
}
答案 1 :(得分:0)
我觉得自己是个白痴。运行此代码时,我的手机处于“静音模式”。对于this answer,我需要添加
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)
}
catch {
// report for an error
}
在实际从AVPlayer播放之前。
这个问题之所以没有引起我的注意,是因为在iPhone的“控制中心”中查看音乐管理器时,没有迹象表明正在播放音频。 仅仅是因为正在播放音频,并不意味着播放控件由设备的控制中心处理。