我正在使用 MPMoviePlayer 流式传输视频 URL。
用户点击视频后,视频在视图的框架中开始。这行得通。嵌入视频后,默认控件会放置一个放大按钮。
当用户按下放大键时,视频可以全屏播放,不会中断播放。
但是,当用户再次按下缩小按钮时,我遇到了三个问题:
视频缩放到屏幕一角然后消失,而不是回到原来的位置。
到角落后视频消失,播放结束,不再继续播放视频。
MPMoviePlayerDidExitFullscreenNotification永远不会被调用,只有MPMoviePlayerWillExitFullscreenNotification被调用。我尝试将 nil 和 mediaPlayerController 发送到通知中心。
此外,当按下完成按钮时,视频会转到屏幕的角落并消失。
我的播放器是通过以下方式创建的:
moviePlayer=[[MPMoviePlayerController alloc] init];
moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
moviePlayer.shouldAutoplay=YES;
moviePlayer.controlStyle=MPMovieControlStyleEmbedded;
moviePlayer.view.hidden = YES;
然后,当用户点击视图时,会发生这种情况:
- (void) playVideo {
NSURL *url=[NSURL URLWithString: _news.videoUrl];
moviePlayer.contentURL = url;
moviePlayer.view.hidden = NO;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillExitFullScreen:) name:MPMoviePlayerWillExitFullscreenNotification object:moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidExitFullScreen:) name:MPMoviePlayerDidExitFullscreenNotification object:moviePlayer];
[moviePlayer play];
}
- (void) moviePlayerWillExitFullScreen:(NSNotification*)notification {
NSLog(@"WILL EXIT FULLSCREEN");
}
- (void) moviePlayerDidExitFullScreen:(NSNotification*)notification {
NSLog(@"EXITED FULLSCREEN"); //NOT CALLED
}
- (void) moviePlayBackDidFinish:(NSNotification*)notification {
NSLog(@"FINISHED PLAYIIING");
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
moviePlayer.view.hidden = YES;
}