声音不工作在iPhone模拟器?

不知何故,我的iPhone模拟器无法播放声音。 首先我正在使用AudioServicesPlaySystemSound()停止工作的应用程序..我花了一段时间debugging这个,但声音仍然在iPhone上运行在设备上的应用程序。 我得到了与其他iPhone应用程序相同的结果,如示例Crash Landing应用程序。

我无法在模拟器或Xcode首选项中的任何位置find声音设置。 我已经尝试通过“重置内容和设置”菜单项重置模拟器无济于事。

在Mac上,进入系统偏好设置>声音>声音效果,然后取消选中并重新检查“播放用户界面声音效果”。

您需要重新激活系统声音,请参阅本页的末尾。

我在模拟器中没有声音,所以我用移动Safari浏览器进行了testing,并尝试播放mp3:没有声音!

以上所有提示都没有帮助。 最后,我将我的input源从虚拟音花设备改为Line-In,模拟器工作!

所以,即使应用程序没有使用input,它也不适合Soundflower。

从OSX10.5.7更新到10.6.2后,我看到了这个问题

我做了下面的改变,使模拟器再次唱歌:转到“应用程序/实用工具”,并运行“audioMIDI设置”,然后将MIDI格式从48000更改为44100。

使用2.1 SDK修复了OpenAL在模拟器上不能正常工作。 确保Active SDK Active Executable设置为2.1。

顺便说一句,确保你使用的是CrashLanding(v1.8)的最新版本。 SoundEngine中一些令人讨厌的漏洞最近被修复了。

我发现声音在模拟器(2.1 SDK)中非常不一致。 有时候是有效的,有时却不行。 即使它工作,它通常是非常波涛汹涌,扭曲(当播放audio文件,如MP3)。

有几件事要记住:

  • 调用AudioSessionInitialize一旦你的应用程序完成启动
  • 通过AudioSessionSetProperty (具有诸如kAudioSessionCategory_MediaPlayback的值)设置会话的kAudioSessionProperty_AudioCategory属性,
  • 调用AudioSessionSetActive(YES)

当然,当所有其他的失败,只需在硬件上运行!

编辑:现在,2.2 SDK已被释放,我没有在模拟器中的任何声音问题。 他们必须修正错误! 我强烈build议你升级到2.2 SDK。

如果重新激活系统声音不奏效,请尝试:启动audio-midi-setup,然后configuration“内置输出”使用44.100Hz,2通道,24位。 (来自http://www.cocos2d-iphone.org/forum/topic/4159

不知何故几天后,我的iPhone模拟器现在需要48.000Hz,2通道,24位。 只是玩一下,并被警告说,它可能会随机更换插入耳机,待机,重新启动等

这是一个脱离主题的提示:当你的耳机插入你的iphone / ipad的缓冲区大小可能翻倍(例如从512字节到1024字节),请确保你不依赖于您请求的缓冲区大小!