我的应用在启动时以全屏模式播放视频。从 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]: unrecognized selector sent to instance
0x7924470
即使我试图像这样阻止这种情况......
if ([moviePlayerController respondsToSelector:@selector(view)]) {
[moviePlayerController.view setFrame:self.view.bounds];
}
...仍然会抛出错误。
最佳答案
几天前我遇到了同样的错误。它只需要将基础 sdk 从 3.2 更改为 4.1 希望对你有帮助
关于iphone - MPMoviePlayerController 仅在通用应用程序中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915076/