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

时间:2013-05-09 19:01:23

标签: ios objective-c mpmovieplayercontroller ios6.1

我有一个名为videoPlayerViewController的UIViewController子类。 在故事板中,我拖出了一个UIViewController。我在Storyboard中正确设置了类。 我在屏幕上放了一个按钮。当我单击按钮时,它执行playVideo方法:。

- (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小时内使用此方法的最简单的代码版本。

我已经尝试过每个StackOverflow的答案。 我只是想播放一个我从互联网流传输的视频。

如果我设置:

player.movieSourceType = MPMovieSourceTypeStreaming;

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

我知道那里有很多MPMoviePlayerController问题,只是问一般的“它是如何工作”的问题似乎很荒谬。我现在已经工作了将近6个小时,没有Google / Stack Overflow / Apple文档搜索功能。

1 个答案:

答案 0 :(得分:3)

我使用了您提供的代码,但在创建它后分配给播放器的头文件中创建了一个名为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];
}