在资源文件夹中播放声音文件

时间:2010-07-03 18:58:19

标签: objective-c iphone

我的资源文件夹中有一些mp3文件,我该如何播放这些mp3文件?我只知道他们的名字。

2 个答案:

答案 0 :(得分:2)

您可以使用AVAudioPlayer。要获取文件的网址,请使用NSBundle s -URLForResource:withExtension:(或向下兼容的替代方案,请参阅Kennys的答案):

NSURL *url = [[NSBundle mainBundle] URLForResource:@"myFile" withExtension:@"mp3"];
NSError *error = 0;
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
// check error ...
[player play];
// ...

请不要忘记阅读using audio上的“多媒体编程指南”部分。

答案 1 :(得分:2)

只是为了补充@Georg的答案。

从文档中可以看出,-URLForResource:withExtension:仅在4.0之后可用。由于3.x仍然普遍存在,因此最好使用向后兼容的方法:

  • 通过将路径转换为NSURL:

    NSString* path = [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"mp3"];
    NSURL* url = [NSURL fileURLWithPath:path];
    ....
    
  • 或者,通过CoreFoundation方法:

    CFURLRef url = CFBundleCopyResourceURL(CFBundleGetMain(),
                                           CFSTR("myFile"), CFSTR("mp3"), NULL);
    ....
    CFRelease(url);