jai*_*ani 4 ios avplayer mpnowplayinginfocenter
在我的应用程序中,播放是从控制中心控制的.当在AVPlayer中进行播放时(此时播放控件在控制中心正常工作),我正在加载带有其他流媒体URL的webview.
再次完成流式传输后,我将从AVPlayer开始播放.在此之后,播放控件在控制中心显示为灰色.
我[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo
用来在控制中心启用播放控制.
会出现什么问题?
我遇到了这个问题以及使用AVPlayer
实例.您可以使用MPRemoteCommandCenter
锁定屏幕和命令中心设置控件.
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
commandCenter.previousTrackCommand.enabled = YES;
[commandCenter.previousTrackCommand addTarget:self action:@selector(previousTapped:)];
commandCenter.playCommand.enabled = YES;
[commandCenter.playCommand addTarget:self action:@selector(playAudio)];
commandCenter.pauseCommand.enabled = YES;
[commandCenter.pauseCommand addTarget:self action:@selector(pauseAudio)];
commandCenter.nextTrackCommand.enabled = YES;
[commandCenter.nextTrackCommand addTarget:self action:@selector(nextTapped:)];
Run Code Online (Sandbox Code Playgroud)
previousTapped:
,playAudio
,pauseAudio
,和nextTapped
在我的视图控制器调用相应的方法来控制我的所有方法AVPlayer
的实例.要启用一个动作,你必须明确地设置enabled
于YES
和提供了一个命令target
和selector
.
如果需要禁用特定操作,除了添加目标外,还必须将enabled
属性显式设置为.NO
commandCenter.previousTrackCommand.enabled = NO;
[commandCenter.previousTrackCommand addTarget:self action:@selector(previousTapped:)];
Run Code Online (Sandbox Code Playgroud)
如果未设置enabled
该命令,则该项目将不会出现在锁定屏幕或命令中心.
此外,请记住将应用程序设置为后台播放(将UIBackgroundModes
audio
值添加到Info.plist文件中.),将播放器设置为活动状态,并检查错误:
NSError *setCategoryError;
NSError *setActiveError;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
[[AVAudioSession sharedInstance] setActive:YES error:&setActiveError];
Run Code Online (Sandbox Code Playgroud)
Google 将我带到这里是因为我在使用 AdMob 视频广告时遇到了命令中心问题,并且 OP 上的评论引用了 AdMob。在这里发帖供其他也遇到这些问题的人使用。
iOS 上的 AdMob 视频广告似乎MPRemoteCommandCenter
出于某种原因利用了该功能。这可能会干扰您的应用程序对命令中心的使用。这是我想出的潜在解决方法: https: //gist.github.com/ekilah/e74683291d3e7fafb947
解决方法的“要点”是在从 AdMob 获取广告并播放广告后重置所有sharedCommandCenter
s 侦听器和s 信息字典。MPNowPlayingInfoCenter
重置所有命令的解决方法不太漂亮,但这就是我想到的。也许有人有更好的方法?
这种方法也可能对OP有所帮助。在不同用途之间重置事物可能是一个解决方案。
归档时间: |
|
查看次数: |
1829 次 |
最近记录: |