MPMusicPlayer错误域= MPErrorDomain代码= 4?

Jac*_*ack 7 audio-player mpmusicplayercontroller ios swift

我有音乐播放器的问题,大多数歌曲都给出了错误

错误域= MPErrorDomain代码= 4

测试设备有Apple音乐订阅,并且曲目在他们在Apple音乐应用程序中正常工作的应用程序上出错!

这是代码:

let applicationMusicPlayer = MPMusicPlayerController.systemMusicPlayer()
 applicationMusicPlayer.setQueueWithStoreIDs([ID])

      if #available(iOS 10.1, *)
      {

        applicationMusicPlayer.prepareToPlay { (error) in

            if (error != nil)
            {
                print("[MUSIC PLAYER] Error preparing : \(String(describing: error))")
                return
            }else
            {
                self.start_timer();
                self.applicationMusicPlayer.play()
            }

        }

      }else
      //Play directly ios below version 10.1
      {
        self.applicationMusicPlayer.play()
      }

    }
Run Code Online (Sandbox Code Playgroud)

但是我试过,当轨道出现这个错误时,我去了Apple音乐播放器并从那里播放它的工作,然后我回到我的应用程序并从我的应用程序播放它工作也很好,所以我需要去Apple音乐应用程序播放不在我的应用程序中播放的曲目,使它们在我的应用程序中工作!这有点奇怪为什么?

PS:测试设备有Apple音乐订阅

小智 7

将歌曲添加到播放列表时遇到了类似的问题,使用以下方法解决了这个问题:

DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5)) {
    // Code
}
Run Code Online (Sandbox Code Playgroud)

我会在准备之前或之后等待一下.

5秒可能太多,但你可以从那里开始