当应用程序处于后台或设备锁定时,Airplay 停止播放视频流
Posted
技术标签:
【中文标题】当应用程序处于后台或设备锁定时,Airplay 停止播放视频流【英文标题】:Airplay stop playing video streaming when app is in background or device locked 【发布时间】:2020-03-03 11:02:10 【问题描述】:我正在使用 AVPlayerViewController 在流中播放视频。
当我在 Apple TV 上的 AVPlayerViewController 上启动 Airplay 并将应用程序置于后台时,或者如果我锁定设备,Apple TV 上的视频会暂停。
我在这篇文章中验证了这一点 [https://developer.apple.com/library/archive/qa/qa1668/_index.html#//apple_ref/doc/uid/DTS40010209][1]
我检查了背景音频,播放模式 我的音频会话在 AVAudiosessionCategoryPlayback 中启动并处于活动状态 当我进入后台或锁定设备时,我的 AVPlayer 处于播放模式
我阅读了这篇文章 [https://developer.apple.com/library/archive/qa/qa1668/_index.html#//apple_ref/doc/uid/DTS40010209][1] 的“视频媒体的特殊注意事项”段落,但他们没有谈到 AVPlayerViewController。
我了解视频不是可能的背景模式功能之一,但 Airplay 是。
那么你有什么办法让视频流音频/图像在后台播放应用程序或使用 AVPlayerViewController 锁定设备?
提前感谢您的建议或任何我会错过的技术链接。
【问题讨论】:
【参考方案1】:Xcode 13
我所要做的就是启用后台模式Audio, Airplay, and Picture in Picture
。为此,只需选择您的目标,添加背景模式并勾选音频、Airplay 和画中画复选框。
然后设置 AV 会话的类别。我是在视频播放之前这样做的。
let audioSession = AVAudioSession.sharedInstance()
do
try audioSession.setCategory(.playback)
catch
print("Setting category to AVAudioSessionCategoryPlayback failed.")
然后它支持在设备锁定时通过 airplay 播放视频。我使用的是AVPlayerViewController
。
【讨论】:
以上是关于当应用程序处于后台或设备锁定时,Airplay 停止播放视频流的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms iOS - 当设备连接互联网时开始上传数据,即使应用程序当前未处于活动状态或处于后台也是如此
iOS 8 Beta 6 - 当应用程序处于后台时处理 UILocalNotification
当移动设备处于睡眠模式或浏览器处于后台时,如何使用 Web 应用程序在移动浏览器中使用 HTML Geolocation API 获取位置?