MPMoviePlayercontroller 在 iphone SDK 4 中不起作用? - 需要帮助

Posted

技术标签:

【中文标题】MPMoviePlayercontroller 在 iphone SDK 4 中不起作用? - 需要帮助【英文标题】:MPMoviePlayercontroller not working in iphone SDK 4 ? - Help Needed 【发布时间】:2010-06-23 07:20:12 【问题描述】:

直到昨天,我的 MPMovieController 在 iPhone SDK 3 中运行良好。但是昨天当我升级 SDK ti iphone SDK 4 时,我的电影播放器​​停止工作,它在下一行给我一个弃用警告(他们已经弃用了很多方法)

moviePlayer.movieControlMode = MPMovieControlModeDefault;

我的完整代码如下:

NSURL *fileURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/videos/%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"SERVICE_URL"]
                                           ,customObject.movieURL]];

    MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
    if (mp)
    
        // save the movie player object
        self.moviePlayer = mp;

        moviePlayer.movieControlMode = MPMovieControlModeDefault;
        [mp release];

        // Apply the user specified settings to the movie player object


        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(myMovieFinishedCallback:) 
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:moviePlayer];


        // Play the movie!
        [self.moviePlayer play];
    

请告诉我要替换哪个方法而不是已弃用的方法或者应该做一些不同的事情?

谢谢,

【问题讨论】:

【参考方案1】:

我今天早上才使用 MPMoviePlayerController,这段代码运行良好(仅在 iPad 模拟器上测试)

NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"video.mp4" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:urlStr];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[self.view addSubview:moviePlayer.view];
moviePlayer.view.frame = CGRectMake(50, 50, 200, 200);  
[moviePlayer play];

【讨论】:

所以我们现在必须手动添加视图,然后再删除? 我没有添加任何 tmpView 所以它不起作用。有必要吗 。因为以前它在没有任何调整的情况下工作。 @Ceaser: 你在用 iphone sdk 4 吗? @hib:是的,我使用的是 ios4,不,你不需要任何 tmpView。只需设置视图的框架并添加子视图: 唯一提到这个延迟的地方是:developer.apple.com/iphone/library/qa/qa2009/qa1656.html 但它是关于远程流的。无论如何,我还没有尝试过,但是您可以尝试预播放视频并在 MPMoviePlayerLoadStateDidChangeNotification 上暂停(在验证之后),然后当用户点击“播放按钮”时再次播放。这是一个黑客,我知道......

以上是关于MPMoviePlayercontroller 在 iphone SDK 4 中不起作用? - 需要帮助的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MPMoviePlayerController 上处理多个 SRT 文件

在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏

在 UITableViewCell 中嵌入 MPMoviePlayerController

MPMoviePlayerController 在影片结尾更改控件样式

后台的 MPMoviePlayerController / AVAudioSession 在来电后不会重新开始播放

MPMoviePlayerController 在启动前显示空白屏幕?