我正在编写一个视频应用程序来播放来自网络的流媒体视频,并且我正在使用 AV 播放器这样做。我的问题是如何找出预先缓冲了多少视频内容,在 MPMoviePlayerController 中,您可以在 UISlider 上看到缓冲内容的数量。我想使用 AV Player 显示相同的内容,并且还能够更改预缓冲内容的数量。
我的理想情况是 - 用户使用我的应用程序流式传输电影文件,如果他暂停播放按钮,电影就会像观看 youtube 视频一样继续缓冲。
请帮忙 !!
谢谢你。
我正在编写一个视频应用程序来播放来自网络的流媒体视频,并且我正在使用 AV 播放器这样做。我的问题是如何找出预先缓冲了多少视频内容,在 MPMoviePlayerController 中,您可以在 UISlider 上看到缓冲内容的数量。我想使用 AV Player 显示相同的内容,并且还能够更改预缓冲内容的数量。
我的理想情况是 - 用户使用我的应用程序流式传输电影文件,如果他暂停播放按钮,电影就会像观看 youtube 视频一样继续缓冲。
请帮忙 !!
谢谢你。
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 秒的预缓冲内容——你只能检查这个值,不能强制播放器缓冲更多数据。但是,您可以使用此值直观地指示缓冲给用户的数据量。