2012-01-24 60 views
1

我有一个播放电影的ViewController。如果下载了电影(使用ASI-HTTP-Request),它将采用本地版本。否则,它会从网上传输它。这是完全一样的电影。MPMoviePlayerController无法在文档文件夹中的电影中工作

流式处理工作得很好,但播放本地文件不起作用。只是一个黑屏,没有控制。该文件已被正确下载我检查了md5校验和。

这是一个大小为1024x5xx像素的Apple QuickTime视频(.mov)。

player = [[MPMoviePlayerController alloc] init]; 
[player.view setFrame: self.view.bounds]; 
if (local) { 
    // DOES not work 
    // SHOULD be [NSURL fileURLWithString:...] 
    [player setContentURL: [NSURL URLWithString: @"/path/to/the/movie.mov"]]; 
} else { 
    // does work 
    [player setContentURL: [NSURL URLWithString: @"http://mydomain.tld/path/to/the/movie.mov"]]; 
} 
[self.view addSubview: player.view]; 
[player play] 

我与球员MediaSourceType试图左右。但它没有帮助。 为什么它不起作用? 我没有任何错误消息,因为我没有收到...,有没有办法从它得到错误消息?

解决方案

我发现我的错误。

我用[NSURL URLWithString: @"/the/path/..."]作为本地路径。

它与[NSURL fileURLWithPath: @"/the/path/..."]

回答

1

检查URL到视频文件。此行返回到Documents目录的路径。到文档目录

[player setContentURL: [NSURL URLWithString: @"/path/to/the/movie.mov"]]; 

试试这个

[player setContentURL: [NSURL URLWithString: [NSString stringWithFormat:@"%@%@", docPath, @"/path/to/the/movie.mov"]]]; 
+0

的路径是正确的

NSString* docPath = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

你的路径是没有关系的,我短的代码。对于那个很抱歉。 电影实际上坐落在缓存目录中。 '[NSString stringWithFormat:@“%@/Library/Caches/movie.mov”,NSHomeDirectory()]' NSFileManager表示文件存在... – remy

相关问题