我正在构建一个非常简单的iOS iPad应用程序,它包含一个视图和4个按钮。 所以基本上你在故事板中有:
->ViewController
->View (this is added just for alignment and position sake, nothing else)
->View
->Button1
->Button2
->Button3
->Button4
当您按下按钮时,电影将以全屏模式播放,所有4个按钮都相同。 电影完成后,无论是因为完成还是用户按下“完成”,
[moviePlayer.view removeFromSuperview]
用于删除电影,一切都返回到应用的初始状态,带有4个按钮。
这是按下按钮时播放电影的代码
- (void) playMovie:(NSString *)fileName
ofType:(NSString *)fileType
{
NSString *filePath=[[NSBundle mainBundle] pathForResource:fileName ofType:fileType];
NSURL *fileUrl=[NSURL fileURLWithPath:filePath];
self.moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:fileUrl];
[self.view addSubview:self.moviePlayer.view];
self.moviePlayer.fullscreen = YES;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerWillExitFullscreenNotification
object:self.moviePlayer];
[self.moviePlayer prepareToPlay];
[self.moviePlayer play];
}
这是我用来停止和删除电影的代码:
- (void) moviePlayBackDidFinish:(NSNotification*)notification
{
MPMoviePlayerController *player = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerWillExitFullscreenNotification
object:player];
if ([player respondsToSelector:@selector(setFullscreen:animated:)])
{
[player stop];
[player setFullscreen:NO animated:YES];
[player.view removeFromSuperview];
}
}
我遇到的问题是,执行[player.view removeFromSuperview];
后,我返回到初始视图,没有背景图像(变黑)并且没有来自任何按钮的响应
如果我删除包含按钮的视图,并将按钮添加到主视图,它将按预期工作。
对不起,如果这不太清楚,我已经阅读了很多书籍,但似乎无法理解这一点。
干杯!
答案 0 :(得分:0)
看起来你正在从超级视图中移除“播放器”,但是你原来添加的是“电影播放器”...尝试从超级视图中删除它。
答案 1 :(得分:0)
我更改了MPMoviePlayerController以获取MPMoviePlayer * 查看 *控制器并引用其中的电影播放器,而不使用setFullScreen,一切都按预期开始工作。
因此,在这种情况下,基本上将视图添加到superview和MPMoviePlayerController的setFullScreen = YES是不行的。