iOS同一应用投放音视频时配置不同后台选项失效如何解决
解决方案
可以根据投放内容类型动态切换suspendSessionsWhenBackgrounded配置项,该参数并非仅能在GCKCastContext初始化时设置,运行时可随时修改生效。
具体实现步骤
- 投放音乐内容前,将参数设置为false:
guard let castContext = GCKCastContext.sharedInstance() else { return } castContext.options.suspendSessionsWhenBackgrounded = false
- 投放视频内容前,将参数设置为true:
guard let castContext = GCKCastContext.sharedInstance() else { return } castContext.options.suspendSessionsWhenBackgrounded = true
注意事项
- 配置修改操作需要在对应内容的投放会话启动前完成,不要在投放会话运行过程中中途修改参数,避免触发会话状态异常。
- 确认项目已开启后台音频权限:在Xcode项目的Signing & Capabilities中添加Background Modes能力,勾选
Audio, AirPlay, and Picture in Picture选项,是音乐投放后台可正常控制切歌的基础前提。 - 若之前出现过视频投放后台断开的异常状态,修改参数后可主动调用当前会话的resume方法手动触发恢复,避免旧状态影响新配置生效:
GCKCastContext.sharedInstance().sessionManager.currentSession?.resume(completion: nil)
内容的提问来源于stack exchange,提问作者Mathieu V.
相关产品推荐
相关产品推荐

