0

我正在使用 AVPlayer 播放来自 Internet 的实时流,并且需要显示播放器正在缓冲:

我正在使用 NStimer :

timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(buffering) userInfo:nil repeats:YES];


-(void)buffering {

if(radiosound.rate == 1.0)
    [activityIndicator stopAnimating];

else 
    [activityIndicator startAnimating];

 }

可以肯定的是,速率属性无法正常显示!知道 AVPlayer 是否正在缓冲是另一种说法吗?

4

2 回答 2

3

您需要查看为加载时间设置键值观察器,并使用它来确定您是否在当前播放点等待数据。

addObserver:self forKeyPath: options: context:使用方法 on设置观察者AVPlayerItem,然后在observeValueForKeyPath: ofObject: change: context:回调中,您可以确定已加载的时间与播放器正在播放的项目中的位置相比。

缓冲时您不会看到rate变量降至零,因为这是所需的播放速率,而不是实际达到的速率。

于 2011-09-08T15:41:39.037 回答
0

将 NSURLConnection 类与 NSURLConnectionDataDelegate 协议结合使用。

于 2016-08-04T13:51:24.807 回答