ios - MPMusicPlayer 错误域=MPErrorDomain 代码=4?

标签 ios swift audio-player mpmusicplayercontroller

我的音乐播放器有问题,大部分歌曲都出错

Error Domain=MPErrorDomain Code=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()
      }

    }

但是我尝试过,当轨道出现此错误时,我转到 Apple 音乐播放器并从那里播放它,它工作正常,然后我回到我的应用程序并从我的应用程序播放它,它也工作正常,所以我需要转到 Apple Music 应用程序来播放未在我的应用程序中播放的轨道,以使它们在我的应用程序中工作!这太奇怪了,知道为什么吗?

PS:测试设备有Apple music订阅

最佳答案

我在将歌曲添加到播放列表时遇到了一些类似的问题,通过使用解决了这个问题:

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

我会尝试在准备之前或之后稍等片刻。

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

关于ios - MPMusicPlayer 错误域=MPErrorDomain 代码=4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034297/

相关文章:

ios - 本地通知不在从日期选择器中选择的确切时间工作,但在 swift 3 中几秒钟后

ios - 检查数组是否为 nil/或是否已在 Swift/iOS 中加载?

iPhone 允许其他应用程序在录制音频/Shazam 时播放音频

ios - sprite kit 游戏中的 Objective c 进度条

iphone - 确定 iOS 设备上可能的最大同时触摸数?

ios - xcode 4.5 和 UIScrollview 有什么问题?

ios - MPMoviePlayerController:停止 MPMoviePlayerController 时没有声音

android - Cordova:重启应用程序并清除浏览器历史记录

ios - ejabberd mod_pubsub 离线消息

python - Discord.py Musicbot 跳过命令权限错误