如何从我的应用程序的资源文件夹内播放MP3文件?(How to play a mp3 file fr

2019-10-16 21:10发布

我在做一个应用程序,将播放声音的事件,但我无法弄清楚如何从应用程序的文件夹ressources访问文件。

下面是我在做什么:

NSSound *player = [[NSSound alloc] initWithContentsOfFile:@"Sound.mp3"] byReference:NO];
[player play];

但它不工作。 如果我把全长路径,它将工作,但我需要另一种方式,因为有人可能把我的应用程序在其他地方比的应用程序文件夹。

Answer 1:

你需要使用NSBundle与类pathForResource:ofType:方法来引用该文件:

NSSound *player = [[NSSound alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Sound" ofType:@"mp3"] byReference:NO];
[player play];

这将返回传递给方法的资源的完整路径。



Answer 2:

只是为了澄清为什么你最初的解决方案没有奏效:

相对路径是相对于当前的工作目录。 对于从Finder推出了GUI的应用程序,在初始工作目录是/ - 也就是说,文件系统的根目录。 如果它是你包的资源文件夹,您的解决方案会工作。

作为Perspx在他的回答指出,正确的解决办法是让你的包的相对路径转换为完整路径。



文章来源: How to play a mp3 file from within the Resources folder of my application?