ios - iOS 13.4 中的 MPMusicPlayerController.applicationQueuePlayer 错误

标签 ios mpmediaplayercontroller

我已经在反馈助手中提交了关于此的反馈,但我想我也会在这里发布——从 iOS 13.4 开始,我注意到 MediaPlayer 框架中的各种错误,特别是 applicationQueuePlayer 和 applicationMusicPlayer。

第一个是在应用程序启动时初始化,它现在抛出这个错误:
[SDKPlayback] applicationQueuePlayer _establishConnectionIfNeeded timeout [ping did not pong]
当调用 prepareToPlay() 时,该错误之后是这个错误:
Error Domain=MPMusicPlayerControllerErrorDomain Code=6 "Failed to prepare to play" UserInfo={NSDebugDescription=Failed to prepare to play}
最终,在调用 prepareToPlay 足够的时间后,它会直接开始播放内容,但即便如此,我发现我必须多次调用 play() 或 pause() 才能可靠地执行此操作。

在 13.4 之后的应用程序中还有其他人看到这个吗?

最佳答案

在我的情况下,我的播放器逻辑并不总是触发 player?.prepareToPlay() 代码。我确保 stop() 播放器,然后立即触发 prepareToPlay。然后我用 contentsOf: URL 准备播放器,并调整播放器设置,然后播放。由于发生了爆裂声,我还必须添加一些奇怪的音量调整。我将在下面发布我的播放器代码。

  static func play(sound: Sound) {
    
 
    stop()
    player?.prepareToPlay()

     let path = Bundle.main.path(forResource: sound.file, ofType: sound.extn)
        let url = URL(fileURLWithPath: path!)
    
    do {
        
        player = try AVAudioPlayer(contentsOf: url)
        player?.volume = 0 //starting volume at zero before playing eliminates pop on start
        player?.numberOfLoops = -1
        player?.play()
        player?.setVolume(1, fadeDuration: 0.3)  //fade in, no pop

    } catch {
      print(error)
    }
}

关于ios - iOS 13.4 中的 MPMusicPlayerController.applicationQueuePlayer 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60887368/

相关文章:

ios - MPMediaPickerController didPickMediaItems 返回 MPModelObjectMediaItem

objective-c - 找不到数据库文件

ios - 核心数据 : A clever way to implement Add/Edit functionality

ios - 将文件上传到ftp服务器时遇到问题

ios - NSJSONSerialization 使用有效的 json 返回 nil

ios - 如何在不点击标记的情况下在 iOS 谷歌地图中显示信息窗口?

ios - remoteControlReceivedWithEvent 在模拟器中有效,但在设备中无效

ios - 使用 MPMediaPlayer Swift 4 淡入淡出(动画)音量