我目前正在使用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,但它也没有用。
答案 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调用。
此外,请确保您的声音片段在开头没有任何延迟。