【发布时间】:2015-08-08 10:26:02
【问题描述】:
我只是使用 MPMoviePlayerController 播放视频...我的代码是
-(void)playMovie:(NSURL *)url
{
moviePlayer =
[[MPMoviePlayerController alloc]
initWithContentURL:url];
if (IDIOM==IPAD) {
[moviePlayer.view setFrame:CGRectMake(22,100, 720, 300)];
}
else
{
(IS_IPHONE_5)? [moviePlayer.view setFrame:CGRectMake(22, 70, 280, 150)]:[moviePlayer.view setFrame:CGRectMake(22, 40, 260, 140)];
}
[_scrollView addSubview:moviePlayer.view];
moviePlayer.scalingMode =MPMovieScalingModeFill;
[moviePlayer prepareToPlay];
[moviePlayer play];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidEnterFullscreen:) name:MPMoviePlayerDidEnterFullscreenNotification object:Nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidExitFullScreen:) name:MPMoviePlayerDidExitFullscreenNotification object:Nil];
}
-(void)moviePlayerDidEnterFullscreen :(id)sender
{
NSLog(@"fullscreen");
[moviePlayer play];
moviePlayer.scalingMode =MPMovieScalingModeFill;
}
- (void) moviePlayerDidExitFullScreen:(id)sender {
NSLog(@"exit full screen");
[moviePlayer play];
moviePlayer.scalingMode =MPMovieScalingModeFill;
}
在这里,当我最初播放视频时,视频将处于“MPMovieScalingModeFill”模式...但我的问题是,如果我按全屏,它会全屏显示视频..当我按退出“全屏”时,我的视频模式将变为到“MPMovieScalingModeAspectFit”模式。但我需要始终处于“MPMovieScalingModeFill”模式。我的代码有什么问题..请帮助我...
【问题讨论】:
-
您不应在全屏通知中触发
play。 -
但它停止播放所以我在全屏通知中再次调用播放
-
这完全没有意义。从全屏切换或切换到全屏时,它不应停止播放。您的代码中一定有一些您没有向我们展示的内容会停止播放。我的猜测是,你的“viewWill/DidAppear”/“viewWill/DidDisappear”中有一些东西——这些外观通知在离开或进入全屏时触发,因为全屏模式完全隐藏了你的 viewController 的视图。
-
是的,我在 DidDisappear 中做到了在我离开控制器时停止播放器,还有其他更好的方法可以在我离开控制器时停止播放器吗?
-
一种常见的方法是在您的
viewDidDisappear中检查MPMoviePlayerController的fullscreen属性。如果fullscreen处于活动状态,请不要调用stop。
标签: ios iphone objective-c mpmovieplayercontroller mpmoviewcontroller