アプリの起動時に、アプリがフルスクリーンモードでビデオを再生します。3.0から4.1まですべてが完璧に機能しています。
ただし、ユニバーサルアプリ用に同じコードをコンパイルすると、iPadでは機能しますが、iPhone(シミュレーター)では機能しなくなります。
誰かがこの問題を解決しましたか?
コードは次のとおりです。
if ([self respondsToSelector:@selector(presentMoviePlayerViewControllerAnimated:)]) {
videoPath = [[NSBundle mainBundle] pathForResource:@"portrait" ofType:@"mov"];
videoURL = [NSURL fileURLWithPath:videoPath];
MPMoviePlayerController *aMoviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
self.moviePlayerController = aMoviePlayerController;
[aMoviePlayerController release];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startVideo:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];
[moviePlayerController.view setFrame:self.view.bounds];
[self.view addSubview:moviePlayerController.view];
moviePlayerController.controlStyle = MPMovieControlStyleNone;
} else {
//OS < 3.2
videoPath = [[NSBundle mainBundle] pathForResource:@"landscape" ofType:@"mov"];
videoURL = [NSURL fileURLWithPath:videoPath];
MPMoviePlayerController *aMoviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
self.moviePlayerController = aMoviePlayerController;
[aMoviePlayerController release];
moviePlayerController.movieControlMode = MPMovieControlModeHidden;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startVideo:) name:MPMoviePlayerContentPreloadDidFinishNotification object:nil];
}
そして、ここにエラーがあります:
-[MPMoviePlayerControllerOld view]:認識されないセレクターがインスタンスに送信されました
0x7924470
こんな風に防ごうとしても…
if ([moviePlayerController respondsToSelector:@selector(view)]) {
[moviePlayerController.view setFrame:self.view.bounds];
}
...エラーは引き続きスローされます。