【发布时间】:2014-04-22 07:33:51
【问题描述】:
我有一个我想要的本地 iPhone 兼容 MP4 视频(我已经为 iPhone 转换了视频,并且我已经测试了将视频上传到网络服务器并将其 URL 输入到移动 Safari 中,它可以完美播放)使用MPMoviePlayerController播放。
这是我的代码:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Welcome" ofType:@"mp4"];
NSURL *fileURL = [NSURL URLWithString:filePath];
playerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
playerController.movieSourceType = MPMovieSourceTypeFile;
playerController.backgroundView.backgroundColor = [UIColor whiteColor];
playerController.view.translatesAutoresizingMaskIntoConstraints = YES;
playerController.scalingMode = MPMovieScalingModeAspectFill;
//[playerController.view setFrame:moviePlayerContainerView.frame];
[playerController.view setFrame:CGRectMake(0, 0, 200, 200)];
[moviePlayerContainerView addSubview:playerController.view];
playerController.contentURL = fileURL;
playerController.fullscreen = YES;
[playerController prepareToPlay];
[playerController play];
fileURL 指向一个有效的文件:
(lldb) po fileURL
/var/mobile/Applications/73C97CC9-731E-4446-A53C-2A8CA30A2393/Tanisalim.app/Welcome.mp4
(lldb) p (BOOL)[[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:NO]
(BOOL) $0 = YES
当我尝试在模拟器(6.1 和 7.1)上运行时,它只会在框架中显示黑屏(如果全屏为 NO)或打开电影播放器视图控制器并永远保持“正在加载...”。当我在设备(iOS 7.1)上运行时,行为是相同的,但我在控制台上收到此错误:
_itemFailedToPlayToEnd: {
kind = 1;
new = 2;
old = 0;
}
当我尝试加载完全相同的视频文件以直接从网络流式传输时,它可以完美运行:
//playerController.contentURL = fileURL;
playerController.contentURL = [NSURL URLWithString:@"http://mywebsite.com/Welcome.mp4"];
我尝试了不同的视频文件,但结果是一样的。我做错了什么?
【问题讨论】:
标签: ios mpmovieplayercontroller