MPMusicPlayerControllerNowPlayingItemDidChange 在后台

MPMusicPlayerControllerNowPlayingItemDidChange in background

有没有办法在应用程序处于后台时获取 MPMusicPlayerControllerNowPlayingItemDidChange 通知?

我有一个应用需要能够在歌曲在后台或屏幕锁定时结束时暂停音乐。我正在使用 systemMusicPlayer 来播放音乐。

我已经尝试添加音频背景功能并在我的 applicationDidEnterBackground 中包含对 beginBackgroundTask 的调用,但这在长时间内不起作用。

在后台时,您的应用程序可能随时被杀死,因此您不想依赖于后台操作。

我的理解是,你想要实现的是,当你的应用程序进入后台时,当前正在播放的音乐继续播放,但在当前播放的歌曲结束后停止。

MPMusicPlayerController.systemMusicPlayer() 正在播放歌曲队列 ("Playlist")。所以我会尝试在 applicationWillResignActive() 中操纵这个 queue 以在当前播放的歌曲之后没有歌曲。

我没有测试这个,我不确定这是否可以通过 public API。