我似乎无法让 iOS 在远程音频控件中显示正确的播放/暂停按钮。nowPlayingInfo
我确实收到了远程控制事件并设置了字典的所有值。
一切正常,我什至在锁定屏幕上看到了封面照片。除了暂停/播放按钮。即使我AVAudioPlayer
正在播放,它也总是看起来像暂停。无论播放状态如何,它都会发送暂停事件。
如何通知 iOS AVAudioPlayer 已暂停并且它现在应该在遥控器按钮栏中显示一个播放按钮?
我似乎无法让 iOS 在远程音频控件中显示正确的播放/暂停按钮。nowPlayingInfo
我确实收到了远程控制事件并设置了字典的所有值。
一切正常,我什至在锁定屏幕上看到了封面照片。除了暂停/播放按钮。即使我AVAudioPlayer
正在播放,它也总是看起来像暂停。无论播放状态如何,它都会发送暂停事件。
如何通知 iOS AVAudioPlayer 已暂停并且它现在应该在遥控器按钮栏中显示一个播放按钮?
确保您正在设置 MPNowPlayingInfoPropertyPlaybackRate 属性。0.0f 表示暂停,1.0f 表示播放。更改这些值时,您还需要设置 MPNowPlayingInfoPropertyElapsedPlaybackTime。
这是示例代码,其中updateMetadata
是将这些更改应用于MPNowPlayingInfoCenter.nowPlayingInfo
字典的函数。这将向中心指示播放器已暂停。
[self updateMetadata:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:audioFile.player.currentTime],
MPNowPlayingInfoPropertyElapsedPlaybackTime,
[NSNumber numberWithFloat:0.0f],
MPNowPlayingInfoPropertyPlaybackRate,
nil]];
我今天遇到了这个问题:我发现我正在录制音频以及播放它的事实导致按钮显示暂停符号。
当我停止AVAudioRecorder
录制时,暂停按钮变成了播放按钮。
下面是示例代码,其中 updateMetadata 是将这些更改应用于 MPNowPlayingInfoCenter.nowPlayingInfo 字典的函数。这将向中心指示播放器已暂停。迅速
self.updateMetadata(NSDictionary.dictionaryWithValuesForKeys(NSNumber(Double(audioFile.player.currentTime))),MPNowPlayingInfoPropertyElapsedPlaybackTime,NSNumber(numberWithFloat:0.0f),MPNowPlayingInfoPropertyPlaybackRate,nil)
很多时候,问题只是 iPhone 模拟器。一旦您使用实例的play()
功能AVAudioPlayer
,远程控制栏应该会自动切换暂停/播放。如果您遇到了没有发生这种情况的问题,请尝试在设备上运行您的程序。
要切换按钮,您不需要设置任何playingInfo
,MPNowPlayingInfoCenter
也不需要按住活动的AVAudioSession
。