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

发布于 2024-07-22 07:42:43 字数 264 浏览 8 评论 0原文

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

I want to be able to play a sound clip in an iPhone OS app. I've seen info on both NSSound as well as AVFoundation as being means for getting sound clips played on an iPhone OS device, but I'm still not clear on the subject and could use some help. No need to spell it out for me step-by-step in actual code, but if someone could give me a hint as to the general direction (i.e. which classes I should be focusing on) in which I should start moving I'll fill in the blanks myself. So, what's the SIMPLEST way to play a sound clip in an iPhone app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风流物 2024-07-29 07:42:43

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

Apple has an article on this subject, see: this link

AVAudioPlayer is the simplest way to play sounds of any length, looping or not, however it requires iPhone OS 2.2 or higher. A simple example:

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];

It will play virtually any file format (aiff,wav,mp3,aac) Keep in mind that you can only play one mp3/aac file at a time.

海夕 2024-07-29 07:42:43

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

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

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

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

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

    SoundEffect *SimpleSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"soundfile" ofType:@"caf"]]; 
      [简单声音播放]; 
      [简单声音发布]; 
      

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

Here's the simplest way I know of:

  1. Convert your sound file to caf (use afconvert commandline tool) and add to your project.

    caf stands for Core Audio Format (I think...)

  2. Look for SoundEffect.h and .m in Apple's sample code. I believe both Metronome and BubbleLevel have it.

  3. Copy to your project
  4. Write code like below:

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

Study SoundEffect.m to get an idea of simple sound handling.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文