1

UILabelでMPMoviePlayerControllerを使用して再生されたビデオの現在の進行状況を表示する必要があります。UILableでビデオの現在の進行状況と合計継続時間を表示する必要があります。1.25 / 5.00のように見えるはずですか?ビデオの再生中にこれを表示する必要があります。デフォルトのプログレスバーで直接表示できますが、無効にする必要があります。無効にできないので、UILabelにビデオの現在の進行状況を表示することを計画しています。誰かがこれについて何か提案を提供できますか?

4

3 に答える 3

3

進行状況と期間を設定するには、ビデオの再生後にセルフウォッチャーを呼び出して、進行状況ラベルの値を更新します...

プレーヤーがいつプレイを開始したかを確認するようにオブザーバーを設定し、セレクターでウォッチャーを呼び出すと、このウォッチャーは次のようになります。

-(void)watcher{
   urProgressLabel.text = [NSString stringWithFormat:@"%d",movieplayer.currentPlaybackTime];
   [self performSelector:@selector(watcher) withObject:nil afterDelay:0.5];//to update the value each 0.5 seconds 
}

それが役に立てば幸い ;)

于 2012-06-05T22:59:26.973 に答える
3

答えを得た...

ビデオプレーヤーをインスタンス化するとき...

self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

//ビデオの進行状況を示すラベルを追加します...。

progressLabel = [[UILabel alloc]initWithFrame:CGRectMake(125,275,70,25)];
progressLabel.backgroundColor = [UIColor clearColor];
[progressLabel setTextColor:[UIColor whiteColor]];
[self.view addSubview:progressLabel];

//タイマーを設定します。

[NSTimer scheduledTimerWithTimeInterval:1.0f 
                                 target:self 
                               selector:@selector(updatePlaybackTime:) 
                               userInfo:nil 
                                repeats:YES];

およびメソッドupdatePlaybackTime:...。

- (void)updatePlaybackTime:(NSTimer*)theTimer {
    progressLabel.text = [NSString stringWithFormat:@"%f",self.moviePlayerController.currentPlaybackTime];
}

完了..Uは、ビデオの進行状況に応じてラベルを更新します...

于 2012-06-06T04:33:04.017 に答える
2

投稿後のデフォルトのプログレスバーチェックアウトを非表示にするため。
リンク1、2たどって、カスタムプログレスバーをチェックアウトするため。

于 2012-06-05T11:10:02.640 に答える