我有一个iOS 9应用程序,可以使用AudioGraph播放类似MIDI的歌曲。我用MPRemoteCommandCenter设置了远程控制命令,MPNowPlayingInfoCenter设置了信息,使当前播放的歌曲显示在控制中心,并响应控制中心按钮按下或耳机按钮按下。点击控制中心的暂停按钮暂停我的歌曲,但控制中心的游戏头继续移动,该按钮仍然是一个暂停图标。再一次敲击它,不停地叫暂停。
是否有一种方法可以更新MPNowPlayingInfoCenter MPRemoteCommandCenter 或MPRemoteCommandCenter状态,以便控制中心知道这首歌暂停了?
我尝试过的解决办法:
enabled playCommand 和 pauseCommand的设置
不起作用MPNowPlayingInfoPropertyPlaybackRate 0 设置为 MPNowPlayingInfoCenter中的0
阻止游戏头前进(如果没有显式设置,则重置运行时间),但是按钮仍然是一个暂停按钮。AVAudioSession.setActive(false)
这看起来确实有效,但速度慢,会导致音频故障,而我的应用程序的其他部分则依赖于音频引擎的运行,即使暂停了一首歌曲。发布于 2016-05-31 18:50:23
似乎MPRemoteCommandCenter知道音频暂停的唯一方法是停止流,所以您的问题的答案似乎是“否”。遗憾的是,我们没有直接控制控制中心的运输控制状态.
由于您的应用程序需要不断的音频流,这似乎是你最好的选择是放弃控制中心音频传输支持。中间点可能是删除对播放和暂停的支持,同时保留当前播放音频的时间线(正如您前面所说的,您可以通过将MPNowPlayingInfoPropertyPlaybackRate设置为0来停止时间线)。
在我的例子中,在按下控制中心的暂停按钮时,只有当我停止流音频时才会显示控制中心播放按钮(在我的示例中,这意味着在我的AVAudioEngine实例上调用stop,在我的示例中不需要将我的AVAudioSession设置为非活动)。停止流也会暂停控制中心的时间线,因此对于其他采取“停止流”解决方案的人来说,您不必乱设置MPNowPlayingInfoPropertyPlaybackRate。
发布于 2022-08-10 09:41:54
您可以使用https://developer.apple.com/documentation/mediaplayer/mpnowplayingplaybackstate?language=objc
MPNowPlayingInfoCenter.defaultCenter.nowPlayingInfo = MPNowPlayingPlaybackStatePlaying;
或
MPNowPlayingInfoCenter.defaultCenter.nowPlayingInfo = MPNowPlayingPlaybackStatePaused;
可从iOS 13.0中扣除
https://stackoverflow.com/questions/36754934
复制相似问题