1

我展示了一个带有以下代码的 MPMovieViewController:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Tutorial" ofType:@"m4v"];

// If path is NULL (the resource does not exist) return to avoid crash
if (path == NULL)
    return;

NSURL *url = [NSURL fileURLWithPath:path];

MPMoviePlayerViewController *mpViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
mpViewController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
mpViewController.moviePlayer.shouldAutoplay = YES;

// NOTE: This can crash the app in the Simulator. This is a known bug
// in xcode: http://stackoverflow.com/a/8317546/472344
[self presentMoviePlayerViewControllerAnimated:mpViewController];

这在 iOS 4.3 及更高版本中运行良好,但我已经有人在运行 iOS 4.2.1 的设备上对其进行了测试,并且电影播放器​​视图控制器出现,但立即自行关闭。我在文档中找不到任何可以解释这一点的东西。有没有人有任何想法?

4

1 回答 1

1

这听起来很像电影内容本身的不兼容。

我怀疑 iOS 4.2.1 设备是 iPhone 3G。3G 不像最近的型号那样支持那么多的编解码器。

iOS4.2.1(及以下)的 iPhone 3G 不支持 Main Profile,只支持 Baseline Profile。

长话短说,您尝试播放的视频与设备不兼容,您需要使用 H264 的基线配置文件重新编码。

下面是 Apple 完成的兼容性与编码矩阵。尽管这标题为 HTTP Streaming Encode Recommendations,但它仍然适用于非流式传输(渐进式下载)和本地播放。

在此处输入图像描述

于 2012-08-16T22:30:52.850 回答