我有这段代码:
NSString *songPathForm = @"http://www.example.com/file.wav";
NSString *song = [[NSBundle mainBundle]pathForResource:songPathForm ofType:nil];
但是歌曲最终会变为空,我做错了什么?
答案 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];