【问题标题】:MPMusicPlayer Error Domain=MPErrorDomain Code=4?MPMusicPlayer 错误域=MPErrorDomain 代码=4?
【发布时间】:2017-09-04 09:40:15
【问题描述】:

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

错误域=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()
      }

    }

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

PS:测试设备有苹果音乐订阅

【问题讨论】:

  • 出现错误的歌曲是否已下载到设备中?还是他们在用户库中但没有下载到手机?
  • @MicahWilson 来自远程 API 的歌曲,它提供带有 epf_id 的苹果歌曲
  • 但是当我去苹果音乐并从那里播放它时,我回到应用程序并从我的应用程序播放它也没有错误
  • 我从类似的代码中收到完全相同的错误。我建议与 Apple 一起打开雷达(我有),因为 MPMusicPlayerController 已经严重混乱了一段时间,需要修复。
  • @vagrant 我花了几天时间找到了解决方案,在这里查看我的问题stackoverflow.com/questions/46022373/…

标签: ios swift audio-player mpmusicplayercontroller


【解决方案1】:

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

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

我会在准备前后稍等片刻。

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

【讨论】:

    猜你喜欢
    • 2017-03-14
    • 2014-09-13
    • 2017-06-16
    • 2018-08-18
    • 2020-05-06
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多