【发布时间】:2012-10-01 02:32:30
【问题描述】:
我创建了一个空白项目 (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];
类似的结果,白屏和错误。 请帮忙....
【问题讨论】:
-
尝试将其放入
viewDidAppear。 -
将它放入 viewDidAppear 解决了上下文错误,谢谢,但我仍然没有得到播放器,只是一个白屏
标签: objective-c ios video mpmovieplayercontroller avfoundation