电晕sdk中模拟器的声音延迟

时间:2013-06-26 12:27:00

标签: corona

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

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

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

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

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

ball:addEventListener("collision", onCollisionSound)

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

2 个答案:

答案 0 :(得分:1)

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

  

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

     

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

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

答案 1 :(得分:0)

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

此外,请确保您的声音片段在开头没有任何延迟。