MPMoviePlayer - 黑屏 - iOS 5 - 没有视频播放

4
在iOS 4中,以下代码可用于播放电影:
-(IBAction)playMovie:(id)sender
{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"testbild1" ofType:@"m4v"]];
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
    UIView *testview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];

    [testview addSubview:moviePlayer.view];
    [self.view addSubview:testview];
    //[self.view addSubview:moviePlayer.view];
    //[moviePlayer setFullscreen:YES animated:YES];
}  

- (void)moviePlaybackComplete:(NSNotification *)notification  
{  
    MPMoviePlayerController *moviePlayerController = [notification object];  
    [[NSNotificationCenter defaultCenter] removeObserver:self  
                                                    name:MPMoviePlayerPlaybackDidFinishNotification  
                                                  object:moviePlayerController];  

    [moviePlayerController.view removeFromSuperview];  
    //[moviePlayerController release];  
}  

现在,我只能看到一个黑屏。没有控件,什么都没有。视频路径是正确的,我已经测试过了。如果我通过按钮点击添加一个白色Subview,它可以工作。所以方法被调用了。
提前致谢!
2个回答

13

我已经通过在.h文件中添加代码解决了这个问题

MPMoviePlayerController *moviePlayer;

iOS 5使用ARC的方式与iOS 4不同。

.m文件必须是:

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];

我在另一个项目中做了同样的事情,我故意以这种方式放置它,结果完美运行。所以我认为就是这样了。谢谢你的贡献。 - DAS
这个能在PhoneGap上工作吗?我不确定如何/在哪里使用该框架来实现修复。 - bafromca
WTF。在另一个项目中犯了同样的错误,而这个也是解决方案__AGAIN__... - DAS

1

如果您使用的是iOS 5.0或5.1,请检查您的moviePlayer是否有以下设置。

[moviePlayer setControlStyle:MPMovieControlStyleFullscreen];

如果是这样,当您设置[moviePlayer setFullScreen:YES animated:YES];时, 将调用MPMoviePlayerPlaybackDidFinishNotification通知,而不是调用MPMoviePlayerWillExitFullscreenNotification或MPMoviePlayerDidExitFullscreenNotification。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接