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

Rex*_*ids 3 iphone audio nssound avfoundation

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

qru*_*key 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];
Run Code Online (Sandbox Code Playgroud)

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


ama*_*ttn 6

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

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

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

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

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

    SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]];
    [SimpleSound play];
    [SimpleSound release];
    
    Run Code Online (Sandbox Code Playgroud)

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