【发布时间】:2017-02-16 08:26:40
【问题描述】:
我有一个地方允许用户从 UIImagePicker 中选择视频,然后通过 MPMoviePlayerViewController 播放该视频。这工作正常,除非按下完成按钮时它只是暂停视频并且不会从全屏关闭它。我被引导相信完成按钮的默认行为是关闭视频,所以我不确定是什么阻止它这样做,或者我可以改变什么来实现它。这是我当前的代码,我尝试了一些更改,我会在代码后记下。
NSString* mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if(CFStringCompare((CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
{
videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
}
moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
[moviePlayer.view setTranslatesAutoresizingMaskIntoConstraints:YES];
moviePlayer.moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
[self.view addSubview:moviePlayer.view];
- (void) moviePlayBackDidFinish:(NSNotification*)notification
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerDidExitFullscreenNotification
object:nil];
[moviePlayer.moviePlayer stop];
[moviePlayer.view removeFromSuperview];
}
我尝试将 [self.view addSubview:moviePlayer.view]; 更改为 [self presentMoviePlayerViewControllerAnimated:]; 但这无济于事。我已经提出了几个不同的变体:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerDidExitFullscreenNotification
object:moviePlayer];
使用其余的初始化代码,但这也无济于事。
编辑:如果允许视频一直播放到最后,它也不会关闭,它只是全屏卡在视频播放器中。
【问题讨论】:
标签: ios mpmovieplayercontroller