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