gpt4 book ai didi

ios - MPMusicPlayerController 无法播放 Apple Music 歌曲

转载 作者:行者123 更新时间:2023-12-04 15:10:11 28 4
gpt4 key购买 nike

我正在使用 MPMusicPlayerController.systemMusicPlayer 的一个实例来对商店 ID 数组进行排队。这已经工作了几个月了。今天早些时候我更新到 iOS 14.3,现在播放器无法播放歌曲。

下面的代码是复制错误所需的最少数量:

// note: repo using any play method you want
let player = MPMusicPlayerController.systemMusicPlayer
let descriptor: MPMusicPlayerStoreQueueDescriptor?

func setup() {
let storeIDs: [String] = ["lorem", "ipsum"] // fetch real IDs from the API
descriptor = MPMusicPlayerStoreQueueDescriptor(queue: storeIDs)
}

func play() {
self.player.setQueue(with: descriptor!)
self.player.play()
}

// Expected: plays song with store ID "lorem"
// Actual: app freezes and I see error logs

当我播放一首歌曲时,应用程序完全卡住而不是播放它(这意味着它不响应用户交互),并且我看到以下日志:

[SDKPlayback] ASYNC-WATCHDOG-1: Attempting to wake up the remote process
[SDKPlayback] SYNC-WATCHDOG-1: Attempting to wake up the remote process
[SDKPlayback] ASYNC-WATCHDOG-2: Tearing down connection
[SDKPlayback] SYNC-WATCHDOG-2: Tearing down connection

MPMusicPlayerController 在 iOS 14.2 上播放音乐效果很好。

任何人都可以确认或阐明这里发生的事情吗?

我同时向 Apple 提交了 TSI/错误报告。

最佳答案

我可以确认问题仍然存在,但在做了一些测试后我发现它实际上正在做的是阻止主线程执行。因此,至少对我有用的解决方法是在后台线程内执行播放功能,如下所示:

DispatchQueue.global(qos: .background).async {
player.prepareToPlay()
player.play()
}

现在问题有时可能仍然存在,但我发现将其移至后台线程可以使它变得不那么乏味和不那么频繁。此外,添加 prepare to play 似乎也能使它在 99% 的时间内正常工作。

关于ios - MPMusicPlayerController 无法播放 Apple Music 歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65331231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com