声音在iPhone模拟器中不起作用?

时间:2008-11-19 16:05:11

标签: iphone objective-c cocoa-touch audio ios-simulator

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

我无法在模拟器或Xcode偏好设置中的任何位置找到声音设置。我尝试通过“重置内容和设置”菜单项重置模拟器无效。

6 个答案:

答案 0 :(得分:65)

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

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

答案 1 :(得分:17)

我在模拟器中没有声音,所以我用手机游戏测试它并尝试播放mp3:没有声音!

以上所有提示都无济于事。最后,我将 INPUT 源从虚拟soundflower设备更改为Line-In,模拟器工作正常!

因此,即使应用程序没有使用输入,它也不适用于Soundflower。

答案 2 :(得分:4)

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

我做了以下更改,让模拟器再次唱歌: 转到“应用程序/实用程序”并运行“音频MIDI设置”,然后将midi格式从48000更改为44100.

答案 3 :(得分:3)

我发现声音在模拟器(2.1 SDK)中非常不一致。有时候它有效,有时则不然。即使它确实有效,它通常也会非常不稳定和扭曲(播放mp3等音频文件时)。

要记住的一些事情:

  • 在您的应用完成启动后立即致电AudioSessionInitialize
  • 通过kAudioSessionProperty_AudioCategory设置会话的AudioSessionSetProperty属性(值为kAudioSessionCategory_MediaPlayback
  • 致电AudioSessionSetActive(YES)

当然,当所有其他方法都失败时,只需在您的硬件上运行它!

编辑:既然2.2 SDK已经发布,我在模拟器中的声音没有任何问题。他们必须修复错误!我强烈建议您升级到2.2 SDK。

答案 4 :(得分:3)

使用2.1 SDK修复了OpenAL无法在模拟器上运行的问题。确保Active SDK Active Executable设置为2.1。

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

答案 5 :(得分:2)

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

几天之后,我的iphone模拟器现在需要48.000Hz,2个通道,24位。 只需稍微玩一下就可以了,当插入耳机,进入待机状态,重新启动等时,它可能会随机变化。

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