其中有模式提出通过MPMoviePlayerViewController presentMoviePlayerViewControllerAnimated:
当它的内容播放完毕后自动解散本身。
我试图禁用它,因为我想稍后播放其他内容。 然而,即使我注册到NSNotificationCenter与[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:playerVC.moviePlayer];
并设置一些其他的内容,但仍驳回。
我怎样才能自动解除自动停止MPMoviePlayerViewController?
更新:
作为澄清,这个问题只是有关删除自动解雇,而不是关于处理残疾人“完成”按钮。 所选择的答案反映。 这是由设计,因为我们假设开发人员添加自己的解聘MPMoviePlayerViewController的手段。 然而,@bickster完成‘按钮的最佳答案交易’为好。
由于该博客文章我想通了,MPMoviePlayerViewController在创建时自动将其自身注册为NSNotificationCenter。 你必须先删除这个注册,它会自动停止解雇自己。
// Initialize the movie player view controller with a video URL string
MPMoviePlayerViewController *playerVC = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:aVideoUrl]] autorelease];
// Remove the movie player view controller from the "playback did finish" notification observers
[[NSNotificationCenter defaultCenter] removeObserver:playerVC name:MPMoviePlayerPlaybackDidFinishNotification object:playerVC.moviePlayer];
您可以使用此代码来自动解除停止视图 - 控制和捕获事件,当用户点击“完成”按钮,这样你就可以自己关闭该视图 - 控制。
第1步 - 页头一个MPMoviePlayerViewController
videoPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[[NSURL alloc ]initWithString:[aURL];
第2步 - 删除默认MPMoviePlayerPlaybackDidFinishNotification观察者和添加自己的
[[NSNotificationCenter defaultCenter] removeObserver:videoPlayer
name:MPMoviePlayerPlaybackDidFinishNotification object:videoPlayer.moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(videoFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:videoPlayer.moviePlayer];
第3步 - 现在viewcontroler
[self presentMoviePlayerViewControllerAnimated:videoPlayer];
第4步 - 添加videoFinish:方法
-(void)videoFinished:(NSNotification*)aNotification{
int value = [[aNotification.userInfo valueForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] intValue];
if (value == MPMovieFinishReasonUserExited) {
[self dismissMoviePlayerViewControllerAnimated];
}
}
你可以尝试这样的事情。
当完成的MPMoviePlayerController播放视频,你收到通知你的方法movieFinishedCallback:implemect
[playerVC.movieplayer setContentURL:// set the url of the file you want to play here];
[playerVC.moviePlayer play];
希望这可以帮助
由于“完成”按钮不能正常工作了,如果我删除MPMoviePlayerPlaybackDidFinishNotification
从NSNotificationCenter
,我改变重复模式MPMovieRepeatModeOne
。 然后,除了视频一切都工作正常,重复。
MPMoviePlayerViewController *playerVC = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:aVideoUrl]] autorelease];
[playerVC.moviePlayer setRepeatMode:MPMovieRepeatModeOne];
文章来源: How to stop MPMoviePlayerViewController's automatic dismiss on moviePlaybackDidFinish?