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];
}
那么答案归你,先生。 我创建了一个新项目并使用您的代码,它的工作原理。 我一直在尝试它在我目前的项目,它并没有在那里工作,但仍然没有。不知道问题是什么,但至少我可以看看其他地方 – user1366911 2013-05-09 20:04:29
很高兴我能帮上忙。我记得有一个问题,ARC没有正确保留一个MPMoviePlayerController对象,所以你需要把它作为一个解决方法分配给一个属性。这在我的一个项目中有效。 – Indi 2013-05-09 21:24:29
2013年12月..提示 - 它是关于文件扩展名(文件形式网络)非常flakey。在我的应用程序中,.MOV有效,.mov很难将iPhone崩溃。离奇。此外,模拟器根本无法工作,它完全没用,只是崩溃。最后在MPMoviePlayerViewController方法的作品中,MPMoviePlayerController是无用的和破碎的。 – Fattie 2013-12-01 20:38:10