2012-08-26 143 views

回答

0

显然这个结果是相当混乱,但我找到了一个解决方案。我正在运行XCode 4.4.1。

这里是为我工作的步骤:

  1. 将MP3文件从取景到XCode项目 - >支持文件。确保复制文件。假设文件名是sound.mp3。
  2. 将AVFoundation框架添加到您的项目中。
  3. 进口< AVFoundation/AVFoundation.h>

  4. @property(强)AVAudioPlayer *声音播放;
  5. 使用以下代码初始化播放器并播放mp3: NSURL * chemin = [NSURL fileURLWithPath:[NSString stringWithFormat:@“%@/sound.mp3”,[[NSBundle mainBundle] resourcePath]]]; NSError *错误; self.soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:chemin error:& error]; [self.soundPlayer play];

现在,在这一点上,我在此所说明的异常:AVFoundation iOS 5 总之这意味着有可能是不应该在设备上发生的模拟器中的错误。在我的情况下,我打开了所有异常,这阻止了我的代码执行。你应该做的是删除抛出所有异常的选项。

此外,在我的情况下,它只有3-5秒才会播放声音,所以请耐心等待,直到您没有立即听到声音。第一次播放后,它会立即播放。

3

我知道播放MP3文件的最简单方法是使用AVAudioPlayer类。基本上,只是做(跳过错误检查,检测完成设置委托等):

NSURL* soundUrl = [[NSBundle mainBundle] URLForResource:@"soundFile" withExtension:@"mp3"]; 
AVAudioPlayer* player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:&err]; 
[player play]; 
+0

+1可能是最简单的播放音频的方式,我只是做了一些小小的调整,使这些iOS新手更容易理解。 –

+0

我尝试过但它不起作用,它引发了一个异常,我无法准确地看到它到达程序集。 – kernix

+0

@kernix您是否导入了AVFoundation框架? –

1

首先添加AVFoundation框架到项目[转至目标>项目右键单击>构建阶段>链接二进制与图书馆>点击on +> select AVFoundation> Add]

// get file path 
NSString *soundPath = [[NSBundle mainBundle] pathForResource: fileNameToPlay ofType:@"mp3"]; 

// allocate and refer to file 
AVAudioPlayer *player =[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: soundPath] error: NULL]; 

// set delegate 
player. delegate = self; 

// play 
[player play]; 
相关问题