2012-08-16 146 views
1

立即解雇本身我提出了一个MPMovieViewController用下面的代码:MPMoviePlayerViewController在iOS 4.2的

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和电影播放器​​视图控制器呈现,但立即自行解散。我无法在文档中找到任何可以解释这一点的内容。有没有人有任何想法?

回答

1

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

我怀疑iOS 4.2.1设备是iPhone 3G。 3G不支持最新型号的编解码器。

iOS4.2.1(及以下版本)中的iPhone 3G不支持主配置文件,但仅支持基准配置文件。

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

下面是由Apple完成的兼容性与编码矩阵。即使这被称为HTTP流式编码建议,它仍然适用于非流式传输(渐进式下载)和本地播放。

enter image description here

+0

谢谢,我开始怀疑同样的事情。有趣的是,它可以在运行iOS 4.2.1的iPod 2G上运行。我会尝试使用编码进行测试。 – Darren 2012-08-16 22:44:17

+0

如果您的内容可通过网络访问,请尝试直接从您的移动Safari浏览器播放。这将排除您的代码的任何问题并确认编码问题。 – Till 2012-08-16 22:54:15

+0

是的,事实证明这是问题所在。 – Darren 2012-08-17 02:08:55