iOS MPMoviePlayerViewController 在屏幕锁定时停止播放
Posted
技术标签:
【中文标题】iOS MPMoviePlayerViewController 在屏幕锁定时停止播放【英文标题】:iOS MPMoviePlayerViewController stop playing when screen locks 【发布时间】:2014-01-23 07:11:40 【问题描述】:我实现了 MPMoviePlayerViewController 来播放视频,我启用了 airPlay 并且效果很好,但问题是当 ipad 上的屏幕锁定时。我的问题是即使屏幕锁定,如何确保 MPMoviePlayerViewController 仍在 airPlay 中。你们中的任何人都知道我该如何完成这项工作吗?
【问题讨论】:
试试这个可能会起作用.. NSError *setCategoryError = nil; [[AVAudiosession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 错误:&setCategoryError]; 正如我在使用 MPMoviePlayerViewController 而不是 AVPlayer 之前提到的那样 【参考方案1】:Apple 认为当用户看不到视频时,持续运行有什么好处?所以看不到的时候不需要播放视频。当应用程序进入后台或屏幕锁定时,Apple 会暂停它。如果您仍想播放它,您可以添加通知以在您进入后台和进入前台时开始和停止。
希望这会有所帮助。
【讨论】:
【参考方案2】:在您的 Info.plist 文件中,添加键“必需的背景模式”,其值为“App 使用 AirPlay 播放音频或流式传输音频/视频”。
另外,当您收到通知 MPMoviePlayerIsAirPlayVideoActiveDidChangeNotification 时,添加以下行:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
并将这一行添加到您的 dealloc 方法中:
[[AVAudioSession sharedInstance] setActive:NO error:nil];
【讨论】:
以上是关于iOS MPMoviePlayerViewController 在屏幕锁定时停止播放的主要内容,如果未能解决你的问题,请参考以下文章
{python之IO多路复用} IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO