来自 URL 的资源路径
我有这样的代码:
NSString *songPathForm = @"http://www.example.com/file.wav";
NSString *song = [[NSBundle mainBundle]pathForResource:songPathForm ofType:nil];
但是歌曲最终变成了空,我做错了什么?
I have this code:
NSString *songPathForm = @"http://www.example.com/file.wav";
NSString *song = [[NSBundle mainBundle]pathForResource:songPathForm ofType:nil];
But song just ends up being null, what am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这里的“路径”是指本地文件系统上的文件路径。您提供给 NSBundle 的是一个 URL。 NSBundle 通常用于获取应用程序本身中的文件(从 Finder 中选择“显示包内容”时所看到的内容)。 NSBunlde 也需要一个相对文件路径,而不是绝对路径(因为您不知道应用程序在哪里)。
A 'path' here is meant as a file path on the local file system. What you're giving to NSBundle is a URL. NSBundle is typically used to get files which are in the application itself (What you see when you select 'Show Package Contents' from the Finder). NSBunlde is expecting a relative file path also, not an absolute path (because you don't know where the app is).
pathForResource
方法仅适用于包内的文件。例如,如果您想访问外部 URL 处的文件,可以在NSData
类中使用dataWithContentsOfURL:
。The
pathForResource
method works only for files inside a bundle. If you want to access a file at a external URL you could usedataWithContentsOfURL:
in theNSData
class for example.要播放您知道其 URL 的声音,您应该使用类似于以下代码的代码:
To play a sound for which you know the URL, you should use code similar to the following one: