来自URL的pathForResource

时间:2011-12-07 23:26:06

标签: objective-c nsstring nsurl nsbundle mainbundle

我有这段代码:

NSString *songPathForm = @"http://www.example.com/file.wav";

NSString *song = [[NSBundle mainBundle]pathForResource:songPathForm ofType:nil];

但是歌曲最终会变为空,我做错了什么?

3 个答案:

答案 0 :(得分:2)

此处的“路径”表示本地文件系统上的文件路径。你给NSBundle的是一个URL。 NSBundle通常用于获取应用程序本身的文件(当您从Finder中选择“显示包内容”时看到的内容)。 NSBunlde也期望相对文件路径,而不是绝对路径(因为你不知道应用程序在哪里)。

答案 1 :(得分:1)

pathForResource方法仅适用于捆绑包内的文件。如果您想访问外部网址的文件,可以使用dataWithContentsOfURL:类中的NSData

答案 2 :(得分:0)

要播放您知道URL的声音,您应该使用类似于以下代码的代码:

NSSound *sound = [[NSSound alloc] initWithContentOfURL: [NSURL URLWithString:songPathForm] byReference:NO];
[sound play];