Ios URLWithString和NSURL的fileURLWithPath之间有什么区别?

Ios URLWithString和NSURL的fileURLWithPath之间有什么区别?,ios,objective-c,path,nsstring,nsurl,Ios,Objective C,Path,Nsstring,Nsurl,在我的代码中,我必须使用URLWithString播放流媒体(HLS)视频和fileURLWithPath播放本地视频 这两种方法有什么区别? 我应该如何使用单一方法播放两个视频 当HSL视频结束时,我还需要将最后一帧显示为静止图像。它现在在结束时显示空白屏幕。如何实现这一点?+URLWithString:生成表示给定字符串的NSURL。因此字符串可能是@”http://www.google.com“而URL代表http://www.google.com +fileURLWithPath:采用路

在我的代码中,我必须使用
URLWithString
播放流媒体(
HLS
)视频和
fileURLWithPath
播放本地视频

这两种方法有什么区别? 我应该如何使用单一方法播放两个视频


HSL
视频结束时,我还需要将最后一帧显示为静止图像。它现在在结束时显示空白屏幕。如何实现这一点?

+URLWithString:
生成表示给定字符串的
NSURL
。因此字符串可能是
@”http://www.google.com“
而URL代表
http://www.google.com

+fileURLWithPath:
采用路径而不是URL,并生成一个
NSURL
,该NSURL使用
文件://
URL表示路径。因此,如果你给它
/foo/bar/baz
,URL将代表
file:///foo/bar/baz


当然,您可以手动构造一个文件URL字符串并将其传递给
+URLWithString:
,但是
+fileURLWithPath:
在您已经有路径时更易于使用,因为您不必处理转义字符串并将其强制为URL格式。

在我使用AVAudioPlayer的应用程序中也发生了类似的事情。我尝试了
[nsurlwithstring: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
我仍然不知道原因,但现在我应该小心使用
[nsurlWithstring://code>

PS.在NSURL参考文件中,苹果表示如下:

重要的 要为文件系统路径创建NSURL对象,请改用fileURLWithPath:isDirectory:


这清楚地表明打开的文件应该使用
[NSURL fileURLWithPath://code>,尽管
[NSURL URLWithString]
也适用于某些情况。

“当HSL视频结束时,我还需要将最后一帧显示为静止图像”与问题的第一部分无关。把它当作另一个问题来问!两个一个的价格。只需扩展最后一部分:文件URL不仅仅是一个前面有“file”字样的路径。它们的工作方式完全不同,人类不可能正确处理这些差异。电脑会。