在我的代码必须使用URLWithString
播放流媒体( HLS
)视频和fileURLWithPath
来播放本地视频。
什么是这两种方法之间的区别? 我应该如何使用单一的方法来播放这两部影片。
此外,我需要最后一帧显示为静止图像时HSL
视频结束。 它现在显示黑屏何时结束。 我应该如何实现这一目标?
在我的代码必须使用URLWithString
播放流媒体( HLS
)视频和fileURLWithPath
来播放本地视频。
什么是这两种方法之间的区别? 我应该如何使用单一的方法来播放这两部影片。
此外,我需要最后一帧显示为静止图像时HSL
视频结束。 它现在显示黑屏何时结束。 我应该如何实现这一目标?
+URLWithString:
产生一个NSURL
表示字符串作为给出。 因此字符串可能是@"http://www.google.com"
和URL代表http://www.google.com
。
+fileURLWithPath:
取的路径,而不是一个URL,并产生一个NSURL
表示使用的路径file://
URL。 所以,如果你给它/foo/bar/baz
的URL将代表file:///foo/bar/baz
。
当然,你可以手动构造一个文件URL字符串,并将其传递给+URLWithString:
但+fileURLWithPath:
更容易使用时,你已经有一个路径,你不必应付逃避字符串,并将其胁迫到URL格式。
类似的事情发生在我的应用程序,它使用AVAudioPlayer。 我试着用[NSURL URLWithString:path]
,发现它无法打开某些MP3文件。 我看着错误由像线[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] fileTypeHint:AVFileTypeMPEGLayer3 error:&error]
,但该错误只是nil
然而,它是由与替换URL解析[NSURL fileURLWithPath:path]
在这两种情况下,路path NSString * @"/var/mobile/Containers/Data/Application/4D96D4AE-2ED4-40B0-85D2-230E1AFA90E7/Documents/01-AudioTrack 01.mp3" 0x1457a8f0
不过我不知道原因但现在我应该用谨慎[NSURL URLWithString:]
。
PS。 在NSURL参考文献,苹果如下表示:
重要的是创造了文件系统路径NSURL对象,请使用fileURLWithPath:isDirectory:代替。
这清楚地表明[NSURL fileURLWithPath:]
应该用于打开文件,尽管[NSURL URLWithString]
也适用于某些情况下。