代码之家  ›  专栏  ›  技术社区  ›  Fantattitude

如何从应用程序的Resources文件夹中播放mp3文件?

  •  1
  • Fantattitude  · 技术社区  · 17 年前

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

    2 回复  |  直到 17 年前
        1
  •  9
  •   Alex Rozanski    17 年前

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

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

        2
  •  1
  •   Peter Hosey    17 年前

    只是为了澄清 为什么 您最初的解决方案不起作用:

    相对路径是相对于当前工作目录的。对于从Finder启动的GUI应用程序,初始工作目录是/即文件系统的根目录。如果它是您的捆绑包的Resources文件夹,您的解决方案就会奏效。

    正如Perspx在他的回答中指出的那样,正确的解决方案是让你的bundle将相对路径转换为完整路径。