我使用以下完成块成功从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缺乏经验。
答案 0 :(得分:1)
您的信息不足以解决问题。
首先,您是否将downloadsFileURL设置为本地下载路径?这是应该传递给视频播放器的完全相同的路径。
其次,未正确加载本地文件的URL。这是为本地文件创建NSURL的方法:
NSURL *url = [NSURL fileURLWithPath:urlStr];
第三,我不确定那种路径格式。 “file:///”是一种在某些情况下无法获取文件的格式。我不确定这一点,但如果前两个建议不起作用,你可以尝试在路径中设置“file://”。
希望这有帮助。