【问题标题】:Keep audio and remove video stream for AVPlayer when app goes into background当应用程序进入后台时,保留 AVPlayer 的音频并删除视频流
【发布时间】:2017-07-13 14:43:09
【问题描述】:

我想减少我的应用在用户播放视频并进入后台模式(使用 HLS 流)时消耗的带宽。我希望音频仍然播放,但似乎 AVPlayer 会继续下载视频片段,即使它们不应该被需要(用户无论如何都看不到任何东西)。

理论上,我可以有一个比特率非常低的视频(例如黑屏)并在应用程序进入后台模式时设置player.currentItem.preferredPeakBitRate = 1,但是我不知道如何防止应用程序下载巨大的后台黑屏段数,让用户返回时黑屏很长时间。另外,如果用户连接不好,我还不清楚如何防止黑屏在前台模式下显示?

我还尝试通过 AVURLAsset 的 - (AVMediaSelectionGroup *)mediaSelectionGroupForMediaCharacteristic:(NSString *)mediaCharacteristic 禁用视频。我可以为音频执行此操作,但不能为视频执行此操作,因为该方法为参数 AVMediaCharacteristicVisual 返回 nil。是否可以在我的 HLS 清单中进行更改以启用此功能?

【问题讨论】:

  • 面临同样的困境。你最后做了什么?

标签: ios avplayer http-live-streaming


【解决方案1】:

处理此问题的最佳方法是通过清单使用传入的音频配置文件,而不是在客户端为此做太多事情。这是因为纯音频配置文件的比特率比音频+视频配置文件的比特率低,如果您设置条件检查 - 如果指示的比特率小于清单具有的最小音频+视频配置文件,它将自动切换到音频配置文件这个需要。

您还需要为 AVPlayerItemNewAccessLogEntry 添加观察者。

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多