0

AVPlayer を使用してインターネットからのライブ ストリームを再生していますが、プレーヤーがバッファリングしていることを示す必要があります。

私は 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

NSURLConnectionDataDelegate プロトコルと組み合わせて NSURLConnection クラスを使用します。

于 2016-08-04T13:51:24.807 に答える