播放声音不适用于iPhone

问题描述:

我已将声音添加到我的应用程序。 在我的.h我已经添加:播放声音不适用于iPhone

CFURLRef soundFileURL; 
SystemSoundID soundFile; 

在我viewDidLoad中在我的.m:

soundFileURL = CFBundleCopyResourceURL(
     CFBundleGetMainBundle(), 
     CFSTR("sound"), 
     CFSTR("mp3"), 
     NULL); 
AudioServicesCreateSystemSoundID(
     soundFileURL, 
     &soundFile); 

,最后我添加了一个-playSound方法:

-(void)playSound { 

NSLog(@"playSound"); 
AudioServicesPlayAlertSound(soundFile); } 

它可以在iPhone模拟器上正常工作,但是当我在iPhone上构建应用程序时,控制台会声音发出,但事实并非如此。 我看过很多其他人也有这个问题,但我没有找到任何解决方案。

怎么了?

这可能是您的编码 - 在模拟器上的音频编解码器是不是由您的实际iPhone的硬件所提供的那些非常不同。尝试重新编码。

另外 - 你不想使用一个声音的MP3,你想使用非压缩文件格式(我建议aiff从经验),因为没有专门的解码硬件来支持你的声音解码正在努力去做。 (有播放音乐,推荐使用mp3)

+0

非常感谢,但现在又出现了另一个问题:每次播放声音时,iPhone都会振动。怎么了? – Leon 2011-04-06 13:21:14

+0

不知道,但“PlayAlertSound”看起来可疑。也许这是为了嗡嗡声设备?听起来像是另一个问题。祝你好运 – Nektarios 2011-04-06 13:50:04

我会在AVFoundation框架中推荐AVAudioPlayer。它有一个简单的用于iOS上声音播放的异步界面。

退房苹果的编程指南here.

我有类似的问题。原来我是参考“Horn.caf”与

NSURL *hornSound = [[NSBundle mainBundle] URLForResource: @"horn" 
               withExtension: @"caf"]; 

注意大小写的差异;我的OS X Lion安装在不区分大小写的文件系统上。 将代码更改为以下解决了问题。

NSURL *hornSound = [[NSBundle mainBundle] URLForResource: @"Horn" 
               withExtension: @"caf"]; 

希望能帮助别人。