0

我目前正在使用corona sdk. 在创建游戏时,我在播放音频文件时遇到了问题。问题是,网球掉在地上,应该播放音频。但是发生的事情是音频延迟了一秒钟。在模拟器上,音频是同步的,但是当我移植apk到我的 Galaxy s2、android 版本 4.2.2 时,我遇到了延迟。下面是我用来播放音频的代码。

我在程序执行时首先加载了音频文件:

local audio = audio.loadSound("hit ball.mp3")

然后在中间的某个地方我使用了碰撞,碰撞时我播放了那个音频文件:

local function onCollisionSound()
      audio.play(audio)
end

ball:addEventListener("collision", onCollisionSound)

我也尝试过使用媒体 API,但也没有用。

4

2 回答 2

1

这可能是OpenAL的问题。所有audio.*方法都基于Android NDK本身不支持的OpenAL(它支持OpenSL ES )。使其工作的解决方案仍然存在一些问题,并且可能会在某些 Android 版本/设备上引入延迟:

(直接来自 Corona SDK 文档audio.play()

注意:Android 的一个已知问题会导致声音在启动时延迟 1 到 2 秒。

您可以尝试使用已弃用 media.*的API 而不是不使用OpenAL,这可能会解决您的问题。

于 2013-06-26T13:43:19.937 回答
0

通常在 Android 4.1 及更高版本中,audio.* API 调用不应滞后。Google 在 4.1 版本中修复了该错误,但在旧版本中,它仍然可能是一个问题。但是,这并不意味着设备制造商没有做一些损害声音性能的事情。当需要准确的时间时,我们建议使用 media.* API 调用。

另外,请确保您的声音剪辑在开始时没有任何延迟。

于 2013-07-01T00:39:22.043 回答