播放m3u8播放列表时AVPlayer会自动调整吗?

时间:2017-09-26 19:20:10

标签: ios swift avplayer hls m3u8

花了一些时间在AWS上设置转码过程后,我发现视频的加载时间没有按照HLS(m3u8)的预期降低。

似乎如果我直接使用AVPlayer,没有AVPlayerViewController,我可能需要自己管理视频流质量吗?我的理解是,如果我有m3u8,那么事情会自动完成,并且会根据网络条件/设备/等使用最佳质量?

到目前为止,如果按原样使用AVPlayer,加载时间似乎与没有m3u8的情况相比稍差一些。

为了更好地了解我正在尝试的一些事情。

1)虽然这样做有助于减少加载时间,但我更愿意做的不仅仅是在不使用wfifi时一直降低它:

self.player?.currentItem?.preferredPeakBitRate = 1

这似乎给了我一个非常低质量的视频,但它加载速度非常快。我还没弄明白如何检测正在使用的实际比特率(因为设置这个值会显着改善加载时间,我会假设AVPlayer不能单独处理调整吗?)。

2)此外,没有任何运气(导致无限的微调器,即使preferredPeakBitRate设置为1):

self.player.automaticallyWaitsToMinimizeStalling = false

3)我愿意使用可能处理此问题的第三方库,发现一些可能会执行此操作的VKVideoPlayer吗?

由于

1 个答案:

答案 0 :(得分:1)

现在可以在iOS8及以后版本中使用。

从Apple' documentation复制之后:

  

网络带宽的所需限制(以每秒位数为单位)   这个项目的消费。 SWIFT:var preferredPeakBitRate:Double   目标-C:@ property(非原子)double preferredPeakBitRate

     

将preferredPeakBitRate设置为非零以指示播放器   应尝试将项目播放限制为该比特率,表示为   每秒位数。

     

如果网络带宽消耗不能降低以满足   preferredPeakBitRate,它会尽可能地减少   继续玩这个项目。