当应用程序处于后台或设备锁定时,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 获取位置?

当应用程序在后台时扫描外围设备(例如,当屏幕锁定时)

当应用程序在后台时扫描外围设备(例如屏幕锁定时)

应用程序暂停时如何在 iPhone 上获取屏幕锁定/解锁事件?