MPMoviePlayerController显示空白屏幕或崩溃的应用程序

问题描述:

我有一个名为videoPlayerViewController的UIViewController子类。 在故事板中,我拖出一个UIViewController。我在Storyboard中正确设置了类。 我在屏幕上放了一个按钮。当我点击按钮时,它执行方法playVideo :.MPMoviePlayerController显示空白屏幕或崩溃的应用程序

- (IBAction)playVideo:(id)sender 
{ 
NSURL *movieURL = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"]; 

MPMoviePlayerController *player = 
[[MPMoviePlayerController alloc] initWithContentURL: movieURL]; 
[player prepareToPlay]; 
[player.view setFrame: self.view.bounds]; // player's frame must match parent's 
[self.view addSubview: player.view]; 
[player play]; 
} 

我得到一个什么都不做的黑屏。

这是我在过去6个小时中使用此方法的代码的最简单版本。

我试过每个*答案。 我只想播放从互联网上流出的视频。

如果我设置:

player.movieSourceType = MPMovieSourceTypeStreaming; 

屏幕显示 “加载” 了一秒钟,然后崩溃。 我究竟做错了什么?

我明白那里有很多MPMoviePlayerController的问题,只要问一个普通的“它是如何工作”的问题似乎很可笑。我已经有将近6个小时的时间了,Google/Stack Overflow/Apple文档搜索没有完成这项工作。

我使用了您提供的代码,但是在创建它之后,我在分配给播放器的头文件中创建了名为mcp的MoviePlayerController属性。这对我有效。电影加载和播放就好了。

在.h文件:

@property (strong, nonatomic) MPMoviePlayerController *mcp; 

在.m文件:

- (IBAction)playVideo:(id)sender 
{ 
    NSURL *movieURL = [NSURL  URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"]; 

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: movieURL]; 
    [player prepareToPlay]; 
    [player.view setFrame: self.view.bounds]; // player's frame must match parent's 

    _mcp = player; 

    [self.view addSubview: _mcp.view]; 
    [_mcp play]; 
} 
+0

那么答案归你,先生。 我创建了一个新项目并使用您的代码,它的工作原理。 我一直在尝试它在我目前的项目,它并没有在那里工作,但仍然没有。不知道问题是什么,但至少我可以看看其他地方 – user1366911 2013-05-09 20:04:29

+0

很高兴我能帮上忙。我记得有一个问题,ARC没有正确保留一个MPMoviePlayerController对象,所以你需要把它作为一个解决方法分配给一个属性。这在我的一个项目中有效。 – Indi 2013-05-09 21:24:29

+0

2013年12月..提示 - 它是关于文件扩展名(文件形式网络)非常flakey。在我的应用程序中,.MOV有效,.mov很难将iPhone崩溃。离奇。此外,模拟器根本无法工作,它完全没用,只是崩溃。最后在MPMoviePlayerViewController方法的作品中,MPMoviePlayerController是无用的和破碎的。 – Fattie 2013-12-01 20:38:10