Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 来自URL的pathForResource_Objective C_Nsstring_Nsurl_Nsbundle_Mainbundle - Fatal编程技术网

Objective c 来自URL的pathForResource

Objective c 来自URL的pathForResource,objective-c,nsstring,nsurl,nsbundle,mainbundle,Objective C,Nsstring,Nsurl,Nsbundle,Mainbundle,我有以下代码: NSString *songPathForm = @"http://www.example.com/file.wav"; NSString *song = [[NSBundle mainBundle]pathForResource:songPathForm ofType:nil]; 但是song最终是空的,我做错了什么?pathForResource方法仅适用于捆绑包中的文件。如果要访问外部URL上的文件,可以使用NSData类中的dataWithContentsOfURL:

我有以下代码:

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

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

但是song最终是空的,我做错了什么?

pathForResource方法仅适用于捆绑包中的文件。如果要访问外部URL上的文件,可以使用
NSData
类中的
dataWithContentsOfURL:
pathForResource
方法仅适用于捆绑包中的文件。如果要访问外部URL上的文件,可以使用
NSData
类中的
dataWithContentsOfURL:

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

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

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

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

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

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

使用时:NSData*song=[NSData dataWithContentsOfURL:[NSURL URLWithString:songPathForm]];我得到一堆垃圾被输出,比如0044000000e0004和stuff@Matt那不是废话;这是文件的内容。但它不起作用,我用它来播放音乐文件,NSData不能播放。OK,我想你应该在询问之前做一些研究。我不知道您正在使用什么来播放声音,但是如果您使用
AVAudioPlayer
,您可以使用
initWithData:error:
方法来播放存储在
NSData
中的声音。当我使用此方法时:NSData*song=[NSData dataWithContentsOfURL:[nsurlurlwithstring:songPathForm];我得到一堆垃圾被输出,比如0044000000e0004和stuff@Matt那不是废话;这是文件的内容。但它不起作用,我用它来播放音乐文件,NSData不能播放。OK,我想你应该在询问之前做一些研究。我不知道您正在使用什么来播放声音,但是如果您使用
AVAudioPlayer
,您可以使用
initWithData:error:
方法来播放存储在
NSData
中的声音。您试图实现什么?您的代码正在向方法传递URL,以获取路径。既然你已经有了URL,为什么你需要一个路径?@kiamlaluno我正在拉一个带有rss提要的音频链接来使用AVFoundation framework,我试着用NSString songPathForm来播放它们,但没有用,你想实现什么?您的代码正在向方法传递URL,以获取路径。既然你已经有了URL,为什么你需要路径?@kiamlaluno我正在用rss源拉音频链接来播放AVFoundation framework,我尝试用NSString songPathForm来播放它们,但没有效果