AVAudioSession 对 MPNowPlayingInfoCenter 显示的影响

最近发现MPNowPlayingInfoCenter在某些情况下无论怎么设置,在锁屏状态和后台时都不显示播放信息。
在查找一些资料后:

  1. MPMoviePlayerController不显示问题
  2. 发现可能和AVAudioSession有关

AVAudioSession是用来管理多个APP对音频硬件设备(麦克风,扬声器)的资源使用。MPNowPlayingInfoCenter是用来在控制中心显示当前音频播放信息的。如果使用AVAudioSession设置为与其他app进行声音混合的时候,那么MPNowPlayingInfoCenter就不能正常显示信息,我猜是因为混合的时候不知道该显示哪一个音频的信息,因为MPNowPlayingInfoCenter只有一个。所以为了正常显示,避免以下设置:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient  error:&setCategoryError];

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDuckOthers error:&setCategoryError];

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDuckOthers error:&setCategoryError];
AVAudioSession 对 MPNowPlayingInfoCenter 显示的影响_第1张图片
觉得帮助到你的话点个赞

你可能感兴趣的:(AVAudioSession 对 MPNowPlayingInfoCenter 显示的影响)