使用AVPlayer播放本地文件的问题?

时间:2015-11-10 18:26:57

标签: objective-c video avfoundation avplayer nsurl

基本上,我将视频文件写入Application Support目录,然后保存它的路径:

NSString *guid = [[NSUUID new] UUIDString];
NSString *outputFile = [NSString stringWithFormat:@"video_%@.mp4", guid];
NSString *outputDirectory = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *tempPath = [outputDirectory stringByAppendingPathComponent:outputFile];
NSURL *fileURL = [NSURL fileURLWithPath:tempPath]
// code to write a video to fileURL

我通过调用[fileURL path];

来保存字符串路径

现在稍后当我尝试从中创建AVAssetItem时,我实际上无法播放它。

编辑:

好的,似乎问题是Application Support中的空间。我尝试将文件保存到Library目录,并且工作正常。

问题就变成了,如何播放我保存在Application Support目录中的视频。我没有能够在没有逃避空间的情况下创建有效的NSURL(当我尝试它时会返回nil NSURL)但似乎空间/转义不允许它正确地玩。

假设需要NSURL到NSString转换(除非确实应该避免)。

另外,请注意,但是如果有人能够对这个问题被投票的原因有所了解,那么我可以提高我的问题的质量,这将是值得赞赏的。我不明白?

1 个答案:

答案 0 :(得分:1)

虽然如果我使用了亚特的推荐方法,{I} removedMarkerArray.forEach(function(removedMarker, index) { //test for valid object if (!removedMarker.hasOwnProperty('title')) continue; else console.log("You dawg, this stuff passed."); //the actual code doing real work, rather than testing. if (removedMarker.PD == PD) { removedMarker.setMap(map); removedMarkerArray.splice(index, 1); placedMarkerArray.push(removedMarker); } }); URLForDirectory:inDomain:appropriateForURL:create:error:这里的实际问题并非转换为URLByAppendingPathComponent:NSURL

我保存了完整的网址(NSString)。这是因为[fileURL path]动态更改,并且完整路径不会始终指向适当的文件。

相反,我需要只保存文件的名称(在我的情况下,我需要保留[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0];),然后在需要时动态构建完整路径。

同样的过程:

outputFile

工作得很好。

TLDR:保存完整路径