使用 Libgdx RoboVM 构建的游戏将不会在 iPad 上播放声音

Game built with Libgdx RoboVM will not play sound on iPad

我使用 Libgdx 创建了一个非常简单的游戏。屏幕上有一些按钮,当用户按下按钮时,会播放特定的声音文件。

我这样初始化我的声音:

Sound mysound = Gdx.audio.newSound(Gdx.files.internal("sounds/mysoundfile.mp3"));

我是这样玩的:

mysound.play();

在 Windows 台式机、Mac 台式机 (El Capitan) 和 Android(在 Galaxy Tab 10.1 和 Sony Z3 上测试)以及我的 iPod 上,一切都完美无缺触碰。

然而,当我 运行 在 iPad Air (MD785LLB) 上玩游戏时,声音不会播放。音量已调高,我可以在设备上(游戏外)播放其他音乐和声音,而且效果很好。但是游戏不会发出任何声音。没有记录任何错误消息,但扬声器没有播放任何内容。

最初我的声音文件是 mp3,但我也尝试将其转换为 wav,但并没有改变行为,仍然没有声音。

编辑: 游戏 运行 正确并在 iPad Air 和 iPad Air 2 模拟器上播放声音。模拟器在版本 9.2 中列出。

事实证明,iPad 在靠近音量按钮的一侧有一个硬件开关。此开关充当某种静音和屏幕旋转锁定。

Libgdx / RoboVM 和可能其他类型的游戏似乎会受到此开关的静音功能的影响。但是其他一些类型的声音则不是,比如播放音频文件,以及在 safari 中页面上的 html5 <audio> 标签,无论开关处于什么位置,这两种声音仍然有效。

我把开关调到没有橙色显示,然后游戏就可以成功播放声音了。