我创建了一个空白项目(iOS)并将其放在我的 viewDidLoad 中:
NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"Movie" ofType:@"m4v"];
MPMoviePlayerViewController *playerController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]];
[self presentMoviePlayerViewControllerAnimated:playerController];
[playerController.moviePlayer play];
当应用程序启动时,我得到的只是一个白屏,日志中有错误消息:
<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextClipToRect: invalid context 0x0
<Error>: CGContextTranslateCTM: invalid context 0x0
<Error>: CGContextDrawShading: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
Warning: Attempt to present <MPMoviePlayerViewController: 0x821e3b0> on <ViewController: 0x863aa40> whose view is not in the window hierarchy!
...以及一堆关于禁用自动播放的行。我特别不明白视图不是层次结构的一部分,因为它是一个空白的“单视图应用程序”iOS项目,代码在 ViewController.m 中。它在视图层次结构中。
我知道电影文件本身不是问题,因为我是从 Apple 在 MPMoviePlayer 上的示例代码中获得的。尽管我(似乎)尝试了示例中编写的所有内容,但我就是无法让播放器工作。
这是另一个尝试,这次使用 MPMoviePlayerController(不是 MPMoviePlayerViewController):
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[player setContentURL:url];
[player setMovieSourceType:MPMovieSourceTypeFile];
[[player view] setFrame:self.view.bounds];
[player view].backgroundColor = [UIColor greenColor];
player.scalingMode = MPMovieScalingModeNone;
player.controlStyle = MPMovieControlModeDefault;
player.backgroundView.backgroundColor = [UIColor whiteColor];
player.repeatMode = MPMovieRepeatModeNone;
[self.view addSubview: [player view]];
[player play];
类似的结果,白屏和错误。请帮忙....