What is difference between URLWithString and fileURLWithPath of NSURL?

一个人想着一个人 提交于 2019-11-26 16:26:11

问题


In my code I have to use URLWithString to play streaming(HLS) video and fileURLWithPath to play local video.

What is the difference between these two methods? How should I use single method to play both videos.

Also I need to show last frame as still image when HSL video ends. Its now showing blank screen when it ends. How should i achieve this?


回答1:


+URLWithString: produces an NSURL that represents the string as given. So the string might be @"http://www.google.com" and the URL represents http://www.google.com.

+fileURLWithPath: takes a path, not a URL, and produces an NSURL that represents the path using a file:// URL. So if you give it /foo/bar/baz the URL would represent file:///foo/bar/baz.

You can of course construct a file URL string manually and pass it to +URLWithString:, but +fileURLWithPath: is simpler to use when you already have a path, as you don't have to deal with escaping the string and coercing it to a URL format.




回答2:


Similar thing happened in my app which use AVAudioPlayer. I tried with [NSURL URLWithString:path] and found out it fails to open certain mp3 files. I looked into error by a line like [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] fileTypeHint:AVFileTypeMPEGLayer3 error:&error], but the error was simply nil

However it was resolved by replacing the url with [NSURL fileURLWithPath:path].

In both case, the path path NSString * @"/var/mobile/Containers/Data/Application/4D96D4AE-2ED4-40B0-85D2-230E1AFA90E7/Documents/01-AudioTrack 01.mp3" 0x1457a8f0 Still I don't know the reason but now I should be careful using [NSURL URLWithString:].

PS. In NSURL Reference document, Apple said as below:

IMPORTANT To create NSURL objects for file system paths, use fileURLWithPath:isDirectory: instead.

which clearly indicates [NSURL fileURLWithPath:] should be used for open file, though [NSURL URLWithString] also works for some cases.



来源:https://stackoverflow.com/questions/16097404/what-is-difference-between-urlwithstring-and-fileurlwithpath-of-nsurl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!