Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MPMoviePlayerController无法处理文档文件夹中的电影_Ios_Stream_Mpmovieplayercontroller_Mov - Fatal编程技术网

Ios MPMoviePlayerController无法处理文档文件夹中的电影

Ios MPMoviePlayerController无法处理文档文件夹中的电影,ios,stream,mpmovieplayercontroller,mov,Ios,Stream,Mpmovieplayercontroller,Mov,我有一个可以播放电影的ViewController。如果电影是下载的(带有ASI HTTP请求),则采用本地版本。否则,它将从web流式传输。这是一部完全相同的电影 流确实工作得很好,但播放本地文件不起作用。只有一个黑屏,没有控制。该文件已正确下载。我检查了md5校验和 这是一个苹果QuickTime视频(.mov),大小为1024x5xx像素 player = [[MPMoviePlayerController alloc] init]; [player.view setFrame: self

我有一个可以播放电影的ViewController。如果电影是下载的(带有ASI HTTP请求),则采用本地版本。否则,它将从web流式传输。这是一部完全相同的电影

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

这是一个苹果QuickTime视频(.mov),大小为1024x5xx像素

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:@//路径/…]


它与
[NSURL fileURLWithPath:@//路径/…]

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

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"]]];

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

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"]]];

路径正确,我短路了代码。很抱歉。电影实际上位于缓存目录中<代码>[NSString stringWithFormat:@“%@/Library/Caches/movie.mov”,NSHomeDirectory()]NSFileManager说文件存在…路径正确,我缩短了代码。很抱歉。电影实际上位于缓存目录中<代码>[NSString stringWithFormat:@“%@/Library/Caches/movie.mov”,NSHomeDirectory()]NSFileManager说文件存在。。。