我有一个从ftp-server下载电影的应用程序,然后用MPMoviePlayerController播放它们。但是电影播放器因MPMovieFinishReasonPlaybackError而失败。
代码如下所示:
NSURL *url = [NSURL fileURLWithPath:[contents objectAtIndex:index]];
NSLog(@"url: %@",url);
self.movieController = [[MPMoviePlayerController alloc] initWithContentURL:url];
nslog给出了这个答案:
url:file://localhost/var/mobile/Applications/E8C9DFE8-9802-4EC1-B560-3EEE96E0AF5E/Documents/media/testfilm.mov
有没有人知道如何让电影上场?如果我将电影添加到项目中并使用以下代码,则电影可以正常工作。
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"testfilm" ofType:@"mov"]];
答案 0 :(得分:0)
您正在使用fileURLWithPath:
作为远程文件,这是错误的。
使用URLWithString:
代替远程文件。
请参阅有关该主题的reference - 特别是参数部分;
URLWithString:
创建并返回使用提供的字符串初始化的NSURL对象。
+ (id)URLWithString:(NSString *)URLString
<强>参数强>
URLString
用于初始化NSURL对象的字符串。必须是符合RFC 2396的URL。此方法根据RFC 1738和1808解析URLString。(要为文件系统路径创建NSURL对象,请改用fileURLWithPath:isDirectory:
。)
回报价值
使用URLString初始化的NSURL对象。如果字符串格式错误,则返回nil。
<强>讨论强>
此方法要求URLString包含任何必要的百分比转义码,即':','/','%','#',';'和'@'。请注意,'%'转义是通过UTF-8转换的。