1

我有一个音乐播放器应用程序,它使用 MPMusicPlayerApplicationController 播放 Apple Music 中的歌曲,我使用 MPMediaQuery 访问这些歌曲。在某些队列操作期间(向前跳过,从队列中删除项目),它将为队列中剩余的每首歌曲抛出以下错误并停止响应播放命令。必须强制退出应用程序才能再次播放。

2019-11-16 12:53:39.926758-0500 相册[32354:6195330] [中间件] RRC:请求失败并出现错误:Error Domain=MPRequestErrorDomain Code=1 "(null)" UserInfo={MPRequestUnderlyingErrorsUserInfoKey=("Error Domain= MPCPlayerRequestErrorDomain Code=2000 \"获取播放队列标识符失败\" UserInfo={NSDebugDescription=获取播放队列标识符失败,NSUnderlyingError=0x130005ec0 {Error Domain=kMRMediaRemoteFrameworkErrorDomain Code=35 \"(null)\"}}" )}

当跳过歌曲时,这个问题很少出现,但在我最近添加了从队列中删除即将发行的完整专辑的功能之后,它变得令人沮丧地重复了。以下是我的实现方式:

  public func removeAlbumFromQueue(album: MPMediaItemCollection, completion: @escaping (Error?) -> Void) {

        mediaPlayer.perform(queueTransaction: { (queue) in

          for song in album.items {

            queue.remove(song)
            }
        }) { (queue, error) in
            if let error = error {
                print(error.localizedDescription)
                completion(error)
            } else {

                self.currentQueue = MPMediaItemCollection(items: queue.items)
                completion(nil)
            }
        }


    }

此操作可能在第二次或第三次失败并出现上述错误,或者它可能让我删除十几个专辑,但最终它总是抛出上述错误。我删除的每个项目之间经过了多少时间,播放器是否正在播放/暂停,或者 Apple Music 歌曲是否正常,这似乎并不重要

如果有人有想法或指示,我将不胜感激。每个谷歌链接都是紫色的,我很茫然。谢谢!

4

0 回答 0