空のプロジェクト(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にあるため、ビューが階層の一部ではないという行は特にわかりません。ビュー階層にあります。
MPMoviePlayerのAppleのサンプルコードから入手したので、ムービーファイル自体は問題ではないという事実を知っています。そして、私は(一見)サンプルに書かれているすべてを試しましたが、プレーヤーを動作させることができませんでした。
これが別の試みです。今回は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];
同様の結果、白い画面とエラーが発生します。助けてください....