不知何故,我的 iPhone 模拟器无法播放声音。首先,我正在使用的应用程序AudioServicesPlaySystemSound()
停止工作。我花了一段时间调试它,但当我在设备上运行应用程序时,声音仍在 iPhone 上运行。我使用其他 iPhone 应用程序(例如示例 Crash Landing 应用程序)得到了相同的结果。
我在模拟器或 Xcode 首选项中的任何地方都找不到声音设置。我尝试通过“重置内容和设置”菜单项重置模拟器无济于事。
不知何故,我的 iPhone 模拟器无法播放声音。首先,我正在使用的应用程序AudioServicesPlaySystemSound()
停止工作。我花了一段时间调试它,但当我在设备上运行应用程序时,声音仍在 iPhone 上运行。我使用其他 iPhone 应用程序(例如示例 Crash Landing 应用程序)得到了相同的结果。
我在模拟器或 Xcode 首选项中的任何地方都找不到声音设置。我尝试通过“重置内容和设置”菜单项重置模拟器无济于事。
在您的 Mac 上,转到“系统偏好设置”>“声音”>“声音效果”,然后取消选中并重新选中“播放用户界面声音效果”。
您需要重新激活系统声音,请参阅本页末尾。
我在模拟器中没有声音,所以我用移动 safari 测试它并尝试播放 mp3:没有声音!
以上所有提示均无济于事。最终,我将INPUT源从虚拟 soundflower 设备更改为 Line-In,模拟器工作了!
因此,即使应用程序没有使用输入,它也不能很好地与 Soundflower 配合使用。
我从 OSX10.5.7 更新到 10.6.2 后看到了这个问题
我进行了以下更改以使模拟器再次唱歌:转到“应用程序/实用程序”并运行“音频 MIDI 设置”,然后将 MIDI 格式从 48000 更改为 44100。
我发现模拟器(2.1 SDK)中的声音非常不一致。有时有效,有时无效。即使它确实有效,它通常也非常不稳定和失真(在播放 mp3 等音频文件时)。
需要记住的几件事:
AudioSessionInitialize
您的应用程序完成启动后立即致电kAudioSessionProperty_AudioCategory
会话的属性AudioSessionSetProperty
kAudioSessionCategory_MediaPlayback
AudioSessionSetActive(YES)
当然,当所有其他方法都失败时,只需在您的硬件上运行它!
编辑:现在 2.2 SDK 已经发布,我在模拟器中没有任何声音问题。他们一定已经修复了错误!我强烈建议您升级到 2.2 SDK。
2.1 SDK 修复了 OpenAL 无法在模拟器上运行的问题。确保 Active SDK和Active Executable 设置为 2.1。
顺便说一句,请确保您使用的是最新版本的 CrashLanding (v1.8)。SoundEngine 中的一些令人讨厌的漏洞最近得到了修复。
如果重新激活系统声音对您不起作用,请尝试以下操作:启动 audio-midi-setup,然后将“内置输出”配置为使用 44.100Hz、2 个通道、24 位。(来自http://www.cocos2d-iphone.org/forum/topic/4159)
不知何故,几天后,我的 iphone 模拟器现在想要 48.000Hz,2 个通道,24 位。只需玩一会儿,并警告它在插入耳机、进入待机、重新启动等时可能会随机变化。
这是一个离题的提示:当您将耳机插入您的 iphone/ipad 时,缓冲区大小可能会翻倍(例如,从 512 字节到 1024 字节),请确保您不要依赖您请求的缓冲区大小!