2

我在尝试将我的应用程序升级到 iOS 6 时遇到了奇怪的崩溃。注意:这种崩溃只发生在 iPhone 上,iPad 没问题。

<Error>: CGContextSaveGState: invalid context 0x933f7d0
<Error>: CGContextClipToRect: invalid context 0x933f7d0
<Error>: CGContextTranslateCTM: invalid context 0x933f7d0
<Error>: CGContextDrawShading: invalid context 0x933f7d0
<Error>: CGContextRestoreGState: invalid context 0x933f7d0
<Error>: CGBitmapContextCreateImage: invalid context 0x933f7d0
-[Not A Type release]: message sent to deallocated instance 0x933f7d0

这发生在 MPMoviePlayerViewController 初始化时:

    self.moviePlayerController = [[[MPMoviePlayerViewController alloc] initWithContentURL:_videoUrl] autorelease];

其中moviePlayerController 是合成和保留的属性。

这是完整的设置:

-(void)setupMediaPlayer {
//NSLog(@"VideoViewController:setupMediaPlayer");

CGRect viewFrame = self.view.frame;    

if (self.moviePlayerController == nil) {
    self.moviePlayerController = [[[MPMoviePlayerViewController alloc] initWithContentURL:_videoUrl] autorelease];
}
else {
    [self.moviePlayerController.moviePlayer setContentURL:_videoUrl];
}

[[self.moviePlayerController view] setFrame:viewFrame];

[self.navigationController.view addSubview:[self.moviePlayerController view]];

}

我检查了 _videoURL,它每次都给出了一个很好的 URL。

我试图将其更改为 MPMoviePlayerController,但是除了 generalCallback 之外,我的所有通知都没有触发。像这样的设置(但会在非 ViewController 选项中删除 .movi​​ePlayer):

[[NSNotificationCenter  defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayerController.moviePlayer];
[[NSNotificationCenter  defaultCenter] removeObserver:self name:MPMoviePlayerLoadStateDidChangeNotification object:self.moviePlayerController.moviePlayer];
[[NSNotificationCenter  defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackStateDidChangeNotification object:self.moviePlayerController.moviePlayer];

我很难过,因为这在 iOS 5 中运行良好。

注意:我在这个项目中使用 Three20 和 TTNavigator。TTNavigator 似乎不支持新的 supportedOrientations 设置,因此在 iPad 上我必须从头开始构建我的标签栏,这样我就不会收到以下错误,因此它将在横向启动:

应用程序在应用程序启动结束时应该有一个根视图控制器

我仍然在 iPhone 上收到此错误,但我不知道它是否与 iPad 上未发生的视频播放器崩溃有关。

有任何想法吗?

谢谢

4

0 回答 0