0

m3u8形式のビデオをバッファリングしており、このURLをMPMovieplayerControllerのcontenturlとして設定しています。

0.3秒ごとに実行されるバックグラウンドスレッドを実行しています。これを使用して、バッファリングされ再生された期間をチェックし、それに応じてチェックを実行します

if(!mPlaybackProgressTimer)
    mPlaybackProgressTimer = [[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(didPlayback:) userInfo:nil repeats:YES] retain];

とdidplaybackで

..

- (void)didPlayback:(id)sender {

    NSTimeInterval totalDuration = [mVideoPlayerController duration];

    NSTimeInterval playbackTime = [mVideoPlayerController currentPlaybackTime];
    float playbackProgress = 0.0;

   if(playbackTime > 0.0 && totalDuration > 0.0)
       playbackProgress = playbackTime / totalDuration;

   mPercentWatched = round(100 * playbackProgress);

   NSTimeInterval bufferedTime = [mVideoPlayerController playableDuration];
   float bufferProgress = 0.0;

   if(playbackTime > 0.0 && totalDuration > 0.0)
       bufferProgress = bufferedTime / totalDuration;

   [self setProgress:bufferProgress forProgressType:eProgressTypeBuffer];
   [self setProgress:playbackProgress forProgressType:eProgressTypePlay];
}

問題は、ホームボタンを押してからアプリに戻ると、バッファリングされた時間が失われることです。つまり、データをもう一度バッファリングする必要があります。この問題を解決する方法はありますか。

4

1 に答える 1

0

これは設計によるものであり、決して変更することはできません。

于 2013-01-09T14:26:45.250 に答える