我使用以下完成 block 成功地从 AWS 下载我的视频:
if (task.result) {
AWSS3TransferManagerDownloadOutput *downloadOutput = task.result;
//File downloaded successfully.
NSLog(@"download succesful!");
NSLog(@"download outptut = %@", downloadOutput);
NSString *body = [downloadOutput valueForKey:@"body"];
NSLog(@"body = %@", body);
//play video
NSString *urlStr =[NSString stringWithFormat:@"%@", body];
NSURL *url=[[NSURL alloc] initWithString:urlStr];
MPMoviePlayerController *moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.controlStyle=MPMovieControlStyleDefault;
moviePlayer.shouldAutoplay=YES;
[self.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:YES];
}
这是我正在记录的内容:
2016-01-08 17:40:28.763 Scene[4045:1637254] download succesful!
2016-01-08 17:40:28.766 Scene[4045:1637254] download outptut = <AWSS3TransferManagerDownloadOutput: 0x159f3fd70> {
ETag = "\"b2e89e481befcecbdadbba782eaf192d\"";
acceptRanges = bytes;
body = "file:///private/var/mobile/Containers/Data/Application/A0806A72-C980-4419-A7B8-4DD8253070E5/tmp/downloads";
contentLength = 3797949;
contentType = "video/quicktime";
lastModified = "2016-01-07 20:26:05 +0000";
replicationStatus = 0;
requestCharged = 0;
serverSideEncryption = 0;
storageClass = 0;
}
2016-01-08 17:40:28.767 Scene[4045:1637254] body = file:///private/var/mobile/Containers/Data/Application/A0806A72-C980-4419-A7B8-4DD8253070E5/tmp/downloads
所以下载成功,那个对象是一个视频。但是,当我尝试播放视频时,视频播放器只会弹出,没有任何内容,也不会被关闭。
这是为什么?我通常使用 Parse,所以我对 AWS 没有经验。
最佳答案
您提供的信息不足以找出原因。
首先,您是否将 downloadingFileURL 设置为本地下载路径?这与应该传递给视频播放器的路径完全相同。
其次,本地文件的 URL 没有正确加载。这是为本地文件创建 NSURL 的方式:
NSURL *url = [NSURL fileURLWithPath:urlStr];
第三,我不确定路径格式。 “file:///”是一种在某些情况下无法获取我的文件的格式。我对此不确定,但如果前两个建议不起作用,您可以尝试在路径中只设置“file://”。
希望这对您有所帮助。
关于ios - 无法播放下载内容的 URL 中的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34687375/