使用中MPMoviePlayerController
に、ビデオのバッファリング中に終了したデータの割合を見つける方法はありますか?
私の目的は、ロードされているパーセンテージを示すプログレスバーを表示し、パーセンテージの数値カウントを表示することです。
前もって感謝します。
使用中MPMoviePlayerController
に、ビデオのバッファリング中に終了したデータの割合を見つける方法はありますか?
私の目的は、ロードされているパーセンテージを示すプログレスバーを表示し、パーセンテージの数値カウントを表示することです。
前もって感謝します。
アップルのドキュメントをチェックしましたMPMoviePlayerController
か?
ここでは、役立つ可能性のある2つのプロパティを見つけることができます。duration
そしてplayableDuration
、それは完全に一致していませんが、かなり近いです。自分で実装する必要があるのは、これらのプロパティをインテリジェントにクエリする方法です。たとえば、を使用して、 0.5秒ごとNSTimer
にインスタンスから情報を取得したい場合があります。MPMovePlayerController
たとえばmyPlayer
、タイプという名前のプロパティがあるMPMoviePlayerController
とすると、ViewControllerなどのinitメソッドで開始します。
次にこれが続きます:
self.checkStatusTimer = [NSTimer timerWithTimeInterval:0.5
target:self
selector:@selector(updateProgressUI)
userInfo:nil
repeats:YES];
そして、UIを更新するためのこのようなメソッド:
- (void)updateProgressUI{
if(self.myPlayer.duration == self.myPlayer.playableDuration){
// all done
[self.checkStatusTimer invalidate];
}
int percentage = roundf( (myPlayer.playableDuration / myPlayer.duration)*100 );
self.progressLabel.text = [NSString stringWithFormat:@"%d%%", percentage];
}
の二重パーセント記号に注意してください-stringWithFormat
。これは、記号に解決するための別の形式指定子%
です。フォーマット指定子の詳細については、こちらを参照してください。