尝试使用 MusicKit 的 ApplicationMusicPlayer 播放大量音乐项目时出现“远程调用超时”错误

问题描述 投票:0回答:1

我正在使用 MusicKit

ApplicationMusicPlayer
在我的应用程序中播放音乐。只要我不播放包含数百首歌曲的大型播放列表,一切都会正常工作。当我尝试播放超过 300 首左右的歌曲集时,我总是收到错误消息:

“准备播放失败” UserInfo={NSDebugDescription=准备播放 失败,NSUnderlyingError=0x121d42dc0 {错误 Domain=MPMusicPlayerControllerErrorDomain Code=9 "远程调用定时 out" UserInfo={NSDebugDescription=远程调用超时}}}))

歌曲是否下载到设备并不重要。 我知道玩家队列有一个另一个初始化程序,它接受

Playlist
实例,但在我的应用程序中,用户可以选择以与默认顺序不同的顺序对播放列表曲目进行排序,这使得使用该初始化程序对我来说不可行。 我尝试了我能想到的一切,我尝试依靠
MPMusicPlayerController
并将
MPMusicPlayerPlayParameters
数组传递给它,但结果是相同的。

typealias QueueEntry = ApplicationMusicPlayer.Queue.Entry

let player = ApplicationMusicPlayer.shared

let entries: [QueueEntry] = tracks
      .compactMap {
          guard let song = $0 as? Song else { return nil }
             return QueueEntry(song)
          }
Task(priority: .high) { [player] in
    do {
        player.queue = .init(entries, startingAt: nil)
        try await player.play() // prepareToPlay failed
    } catch {
        print(error)
    }
}
ios swift apple-musickit
1个回答
0
投票

似乎是其他开发者经历过的限制。

Rudrank Riyam 写了很多关于使用 MusicKit 的文章,他甚至在 Twitter 上发布了有关您的具体问题的信息。

enter image description here

https://twitter.com/rudrankriyam/status/1758035733124722850

包含数百个项目的播放列表的用例是什么?

© www.soinside.com 2019 - 2024. All rights reserved.