ビデオのいくつかのシーンを何度か繰り返したいと思います。
iOS 4 では、既に実装でき、動作します。iOS 5 では、コードは同じようには機能しなくなりました。
例を次に示します。
シーン 1: 15 秒から 30 秒で開始します。
シーン 1 が 5 回繰り返されます。
シーン 2: 45 秒から 55 秒に開始します。
シーン 2 が 3 回繰り返されます。
iOS 5 では、シーン 1 が 5 回繰り返されます。シーン 2 はもう再生されません。
それが私がiOS 4でそれを解決した方法です:
- (void)initMoviePlayer
{
// Some other stuff…
iterations = 5;
NSDictionary *currentScene = [allScenes objectAtIndex:currentSceneIndex];
moviePlayer.repeatMode = MPMovieRepeatModeOne;
// Scene start time
moviePlayer.initialPlaybackTime = [[currentScene objectForKey:@"StartTime"] intValue];
// Scene end time
moviePlayer.endPlaybackTime = [[currentScene objectForKey:@"EndTime"] intValue];
[moviePlayer play];
}
// Called by MPMoviePlayerPlaybackStateDidChangeNotification
- (void)playerStateChanged:(NSNotification*)notification
{
// Some other stuff…
if (counter == iterations)
{
currentSceneIndex++;
// Stop movie
[moviePlayer stop];
// Init movie player with next scene
[self initMoviePlayer];
}
else
{
counter++;
// Scene will repeat because of MPMovieRepeatModeOne
}
}