错误的电影,我成立了电影播放这样的:不能暂停循环,因为的MPMoviePlayerController
self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:@"whatever.mp4"];
self.moviePlayer.controlStyle = MPMovieControlStyleNone;
self.moviePlayer.shouldAutoplay = YES;
[self.moviePlayer prepareToPlay];
self.moviePlayer.repeatMode = MPMovieRepeatModeOne;
self.moviePlayer.view.frame = self.container.bounds;
self.moviePlayer.view.userInteractionEnabled = NO;
[self.container addSubview:self.moviePlayer.view];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(moviePlayBackDidFinish:) name: MPMoviePlayerPlaybackStateDidChangeNotification
object: self.moviePlayer];
的通知是必要的,以保持玩家的循环,因为REPEATMODE是几乎无用的(视频会重复一次或两次,也许几次取决于中国大米的价格,然后停止)。所以要保持视频循环,你必须这样做:
- (void)moviePlayBackDidFinish:(NSNotification *)note {
if (note.object == self.moviePlayer) {
NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
if (reason == MPMovieFinishReasonPlaybackEnded) {
[self.moviePlayer play];
}
}
}
现在的问题是,我需要能够暂停视频。出于某种原因,到
[self.moviePlayer pause];
结果通知调用与理由解雇== MPMovieFinishReasonPlaybackEnded即使文档中明确指出这一点:
Constants
MPMovieFinishReasonPlaybackEnded
The end of the movie was reached.
Available in iOS 3.2 and later.
Declared in MPMoviePlayerController.h.
在电影的结尾没有达到。我只是叫暂停:。所以通知被触发,因此电影再次播放,否定了暂停动作。
所以你可以看到问题。如何成功暂停循环视频?
为什么不跟踪通知是由暂停按钮触发还是由循环结束使用BOOL变量触发? – ManicMonkOnMac
如何?就像我说的是视频结束还是暂停被称为MPMovieFinishReasonPlaybackEnded的原因。 – soleil