8

使用中MPMoviePlayerControllerに、ビデオのバッファリング中に終了したデータの割合を見つける方法はありますか?

私の目的は、ロードされているパーセンテージを示すプログレスバーを表示し、パーセンテージの数値カウントを表示することです。

前もって感謝します。

4

1 に答える 1

6

アップルのドキュメントをチェックしましたMPMoviePlayerControllerか?

http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMoviePlayerController_Class/Reference/Reference.html

ここでは、役立つ可能性のある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。これは、記号に解決するための別の形式指定子%です。フォーマット指定子の詳細については、こちらを参照してください

于 2012-08-03T14:00:56.820 に答える