我有一个播放电影的ViewController。如果下载了电影(使用ASI-HTTP-Request),则需要本地版本。否则它会从网络上传输它。它是完全相同的电影。
Streaming工作得很好,但播放本地文件不起作用。只是黑屏,没有控制。文件已正确下载我检查了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/..."]
答案 0 :(得分:1)
检查视频文件的URL。此行返回Documents文档目录。
NSString* docPath = [NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
您的路径与文档目录
无关[player setContentURL: [NSURL URLWithString: @"/path/to/the/movie.mov"]];
试试这个
[player setContentURL: [NSURL URLWithString: [NSString stringWithFormat:@"%@%@", docPath, @"/path/to/the/movie.mov"]]];