3

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

4

2 回答 2

8

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

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 文件。

于 2009-05-22T05:30:43.647 回答
6

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

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

    caf 代表核心音频格式(我认为......)

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

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

    SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]];
    [SimpleSound play];
    [SimpleSound release];
    

研究 SoundEffect.m 以了解简单的声音处理。

于 2009-05-22T04:39:55.060 回答