【发布时间】:2019-06-26 02:03:44
【问题描述】:
我有一个使用 AVPlayer 播放音频的应用程序,我触摸了正确的 API 以在控制中心获取正在播放的信息以更新。
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:0 error:&categoryError];
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeSpokenAudio error:&modeError];
[[AVAudioSession sharedInstance] setActive:YES error:&activeError];
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = {...};
...
MPRemoteCommandCenter * const commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
commandCenter.playCommand.enabled = YES;
...
此 API 会按预期工作,直到某些广告使用 Google 的 AdMob 框架出现。这些是在UIWebView 实例中呈现的标准 MREC 和横幅。一旦出现,“正在播放”状态就会恢复为“音乐”应用,并且使用遥控器的能力消失。
一旦发生这种情况,我什至无法重新设置“正在播放”信息,就像卡住了一样。虽然,当我打印出[[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo 的值时,正如我所料,它只是没有显示。
广告不播放音频或视频,但不知何故它们破坏了 Now Playing API 并且无法恢复。
我已联系 Google 和 Apple 询问如何解决此问题,但同时想知道是否有人可以建议任何解决方法?
【问题讨论】:
-
我想我也有同样的问题。控制中心是否只显示“音乐”?您使用的是哪个 AdMob 版本?
-
@C.Leung 是的!我使用的是最新版本之一,v7.44。您也可以在此处查看/参与此讨论:groups.google.com/forum/…