4

我正在编写一个视频应用程序来播放来自网络的流媒体视频,并且我正在使用 AV 播放器这样做。我的问题是如何找出预先缓冲了多少视频内容,在 MPMoviePlayerController 中,您可以在 UISlider 上看到缓冲内容的数量。我想使用 AV Player 显示相同的内容,并且还能够更改预缓冲内容的数量。

我的理想情况是 - 用户使用我的应用程序流式传输电影文件,如果他暂停播放按钮,电影就会像观看 youtube 视频一样继续缓冲。

请帮忙 !!

谢谢你。

4

1 回答 1

7

AVPlayerItem loadedTimeRanges通过查看属性,您可以看到在播放头之前已加载和缓冲的数据量。

例如

AVPlayer *player;
NSArray *loadedTimeRanges = player.currentItem.loadedTimeRanges;
NSLog(@"LoadedTimeRanges: %@", loadedTimeRanges);

在我的应用程序中,我可以看到:

LoadedTimeRanges: (
    "CMTimeRange: {{338070700809/1000000000 = 338.071}, {54651145016/1000000000 = 54.651, rounded}}"
)

其中第二个值 ( 54.651) 似乎是存在于播放头前面的缓冲量。在停顿的情况下,该值会随着播放的继续而减小,直到接近 0。

我只看到了 55 到 60 秒的预缓冲内容——你只能检查这个值,不能强制播放器缓冲更多数据。但是,您可以使用此值直观地指示缓冲给用户的数据量。

于 2012-10-17T04:29:37.063 回答