在iPhone应用程序中播放声音片段的最简单方法是什么?

时间:2009-05-22 04:20:28

标签: iphone audio avfoundation nssound

我希望能够在iPhone OS应用中播放声音片段。我已经看到 NSSound 以及 AVFoundation 的信息作为在iPhone OS设备上播放声音片段的方法,但我仍然不清楚这个主题并可以使用一些帮助。不需要在实际代码中逐步拼出我,但是如果有人能给我一个关于我应该开始移动的大方向(即我应该关注哪些类)的提示我会填写在我自己的空白。那么,在iPhone应用程序中播放声音片段的最简单方法是什么?

2 个答案:

答案 0 :(得分:8)

Apple有一篇关于此主题的文章,请参阅:this link

AVAudioPlayer是播放任意长度声音的最简单方式,循环与否,但它需要iPhone OS 2.2或更高版本。一个简单的例子:

NSString *soundFilePath =
                [[NSBundle mainBundle] pathForResource: @"sound"
                                                ofType: @"wav"];

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];

AVAudioPlayer *newPlayer =
                [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
                                                       error: nil];
[fileURL release];

[newPlayer play];

[newPlayer release];

它几乎可以播放任何文件格式(aiff,wav,mp3,aac)请记住,你一次只能播放一个mp3 / aac文件。

答案 1 :(得分:6)

这是我所知道的最简单的方法:

  1. 将您的声音文件转换为caf(使用afconvert命令行工具)并添加到您的项目中。

    caf代表Core Audio Format(我认为......)

  2. 在Apple的示例代码中查找SoundEffect.h和.m。我相信节拍器和BubbleLevel都有它。

  3. 复制到您的项目
  4. 编写如下代码:

    SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]];
    [SimpleSound play];
    [SimpleSound release];
    
  5. 研究SoundEffect.m以了解简单的声音处理。