在iPhone上播放CAF声音的最简单方法?

在iPhone上播放CAF声音的最简单方法?,iphone,audio,Iphone,Audio,要做到这一点有多难?有人告诉我,在iPhone上播放音频非常难。真不敢相信。但他说打一场很难,但同时打两三场是难以置信的难。听起来很可怕。你们能说些什么 我想做的是:我有大约10个CAF文件,带有小的滴答声、嘟嘟声和按键声。没什么特别的。现在我想在每次发生事情时播放这些文件。同时也可能发生一些事情。因此,有可能出现回放重叠的情况 也许有一个框架我可以用来做这件事?播放小的光点、嘟嘟声等(声音不到30秒)其实很容易——这正是AudioServices的目的。您需要首先获得每个声音的ID,如下所示:

要做到这一点有多难?有人告诉我,在iPhone上播放音频非常难。真不敢相信。但他说打一场很难,但同时打两三场是难以置信的难。听起来很可怕。你们能说些什么

我想做的是:我有大约10个CAF文件,带有小的滴答声、嘟嘟声和按键声。没什么特别的。现在我想在每次发生事情时播放这些文件。同时也可能发生一些事情。因此,有可能出现回放重叠的情况


也许有一个框架我可以用来做这件事?

播放小的光点、嘟嘟声等(声音不到30秒)其实很容易——这正是AudioServices的目的。您需要首先获得每个声音的ID,如下所示:

SystemSoundID soundID = 0;
CFURLRef soundFileURL = (CFURLRef)[NSURL URLWithString:somePathString];
OSStatus errorCode = AudioServicesCreateSystemSoundID(soundFileURL, &soundID);
if (errorCode != 0) {
  // Handle failure here
}
然后,您将保留该ID,直到您需要使用它,然后您可以使用以下行播放声音:

AudioServicesPlaySystemSound(soundID);
还有一种
AudioServicesPlayAlertSound()
,根据设备的性能,其行为会略有不同,例如,如果用户将设备配置为振动iPhone。你应该阅读以获得更完整的解释

请注意,您对使用AudioServices播放声音的控制非常有限-您无法停止播放声音、控制音量等。AudioServices仅适用于警报声音和其他此类短嘟嘟声和滴答声。当然,有AVAudioPlayer,但它比本例中需要的要重一些。你最好还是坚持使用音频服务,除非其中一个限制使它无法使用

您需要链接AudioToolbox.framework才能使用这些函数


另外,欢迎来到Stack Overflow!别忘了阅读FAQ,并为你的问题标记已接受的答案(当然,如果它们是值得接受的好答案)。

我只使用IPhone几周,在这个论坛上我得到了很多帮助,因此能够真正回答一个问题,我感到非常高兴

你需要的小工具是AVAudioPlayer,它在苹果的文档中。我刚刚完成了一个小的录音/回放应用程序,主要使用了第16章中的一些帮助 《IPhone SDK开发》一书的作者(Dudney和Adamson)

在我投资的四本IPhone编程书中,它有最现实的应用程序

但无论如何,请查看AVAudioPlayer类参考。它很容易使用,这是一个新手说的

约翰·多纳

`#包括

SystemSoundID soundID=0

CFURLRef soundFileURL=(CFURLRef)[nsurlUrlWithString:@“myfile.caf”]

OSStatus errorCode=AudioServicesCreateSystemSoundID(soundFileURL和soundID)

AudioServicesPlaySystemSound(soundID)


下面的代码是我用来播放.caf文件的

SystemSoundID SoundID;
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"beep" ofType:@"caf"];
NSURL *soundURL = [NSURL fileURLWithPath:soundPath];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL, &SoundID);
AudioServicesPlaySystemSound(SoundID);

谢谢Xcode找不到任何AudioServices调用的任何符号。我必须导入什么?@openfrog:我在答案上加了一行。别忘了点击你的问题的已接受答案旁边的绿色复选标记。谢谢!我们也来看看AVAudioPlayer。