AVPlayerViewController:流式传输 .m3u8 视频的前五秒出现低分辨率问题

问题描述 投票:0回答:0

在流式传输 .m3u8 视频的前五秒,AVPlayerViewController 显示的分辨率比视频的其余部分低得多,即使它已完全缓冲,我再次回到前几秒。

我尝试了以下策略:

  • canUseNetworkResourcesForLiveStreamingWhilePaused
    AVPlayerItem
    属性设置为真。
  • preferredForwardBufferDuration
    AVPlayerItem
    属性设置为30秒。
  • 使用
    AVAsset
    方法
    loadValuesAsynchronously(forKeys:completionHandler:)
    并仅在确保已加载所有必要数据后创建
    AVPlayerItem
  • AVPlayerItem.status
    上使用KVO,以便在其项目状态为
    prerollAtRate
    时调用AVPlayer的
    .readyToPlay
    方法。

到目前为止,这是我的设置:

let url = URL(string: "https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.ism/.m3u8")!
let asset = AVURLAsset(url: url)
let item = AVPlayerItem(asset: asset)
let playerViewController = AVPlayerViewController()
playerViewController.player = AVPlayer(playerItem: item)
self.present(playerViewController, animated: true)

前五秒:

五秒后:

swift m3u8 avplayerviewcontroller
© www.soinside.com 2019 - 2024. All rights reserved.