【问题标题】:AVAudioPlayer fails with error "The operation couldn’t be completed. (OSStatus error 2003334207.)"AVAudioPlayer 失败并出现错误“无法完成操作。(OSStatus 错误 2003334207。)”
【发布时间】:2018-01-12 14:52:53
【问题描述】:

这是我的代码示例...对于少数音频文件(mp4 扩展名),它失败并出现异常“操作无法完成。(OSStatus 错误 2003334207。)” 我从 iPhone 下载了容器并确认该文件存在于路径中

do {  

    audioPlayer = try AVAudioPlayer(contentsOf: url)

     //guard let player = player else { return }
     audioPlayer.delegate = self
     audioPlayer.prepareToPlay()
     audioPlayer.play()
     audioPlayer.volume = 1.0

     if timer != nil && timer.isValid {
         timer.invalidate()
         timer = nil
     }

     timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(LynkAudioPlayer.checkPlayTime), userInfo: nil, repeats: true)

} catch let error as NSError {
     print(error.description)
}

【问题讨论】:

    标签: ios swift avaudioplayer


    【解决方案1】:

    您的代码看起来不错。发生此错误是因为您访问的文件不在指定的 url 处,或者在返回后该值为 nil。确保您有一个格式正确的 URL,用于使用 AVAudioPlayer(contentsOf: url) 访问的资源。音频数据还必须采用 Core Audio 支持的格式。您可能想在设置后检查audioPlayer 是否为nil

    audioPlayer = try AVAudioPlayer(contentsOf: url)
    
    if audioPlayer != nil { 
        audioPlayer.delegate = self
        audioPlayer.prepareToPlay()
        audioPlayer.play()
        audioPlayer.volume = 1.0
    } else {
        //try to load a different resource?
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-19
    • 2019-02-10
    • 2019-02-18
    • 2020-07-29
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多