Cocos2d - SimpleAudioEngine - iPhone上没有播放声音

时间:2011-07-04 11:26:07

标签: audio cocos2d-iphone simpleaudioengine

最近我在使用CocosDenshion播放我的声音效果方面遇到了问题。声音在iPhone模拟器上播放,但不在我自己的设备上播放。我不确定我做错了什么。当然我检查了我的扬声器是否仍在工作,但他们在使用其他应用程序或iPod库时也这样做。

我只是使用这个简单的代码:

[[SimpleAudioEngine sharedEngine] playEffect:@"button.wav"];

我仔细检查了文件名,确实是button.wav。

我希望有人可以帮助我。

5 个答案:

答案 0 :(得分:9)

我最近遇到了同样的问题而且我已经弄明白了。

我正在使用Xcode 4.3.2,似乎有一个错误。 并非您向项目添加(拖动)的所有资源都默认添加到目标。 添加资源时,请确保(除了检查复制项目到目标复选框之外)还要检查添加到目标复选框。

您可以通过单击目标图标来检查资源是否已添加到捆绑包中。在Build Phases选项卡中,检查声音文件是否包含在Copy Bundle Resources中。 如果没有,请手动添加(+添加目标)

答案 1 :(得分:4)

您可以尝试在程序的某个早期点预加载声音效果,否则它必须加载声音效果才能播放它。您可以创建一个第一个场景的splashScreen场景并加载所有资源,然后转换到第一个“实际”场景。

    SimpleAudioEngine *engine = [SimpleAudioEngine sharedEngine];
    [engine preloadEffect:@"Example-Sound.caf"];

答案 2 :(得分:1)

不确定是否属于这种情况,但您应该记住,如果您的文件名是“Button.wav”并且您要求playEffect:@"button.wav"它将会播放模拟器,但不会在设备上。这种效果发生的原因是桌面上的文件系统不区分大小写,而在iOS设备上则不是。

答案 3 :(得分:0)

我有同样的问题,在这里找到。但我自己解决了。 如果您重新安装ios for ipad。默认开关(在音量上)默认为“静音音量”方法。也许我在静音时将其改为“旋转”方法。这导致所有cocos2d无法播放声音。所以我将方法重新打开并设置静音。然后SimpleAudioEngine效果很好。这是ios系统的错误。

答案 4 :(得分:0)

务必检查您的音频文件本身。单声道16位,未压缩波,采样率为441000,应该“正常工作”。我建议从在线Cocos2D示例中抓取示例.wav,例如Cowbell.wav并尝试播放该文件。