2013-06-26 23 views
0

我目前正在用corona sdk創建一個遊戲。在創建遊戲時,我在播放音頻文件時遇到了問題。問題是,一個網球落在地面上,應該播放音頻。但是,發生什麼事是音頻被延遲了一秒鐘。在仿真器上音頻是同步的,但是當我在我的galaxy s2上移植apk時,android版本4.2.2我面臨延遲。以下是我用來播放音頻的代碼。在電暈sdk模擬器上的聲音延遲

我先加載的程序執行的音頻文件:

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

然後在中間的某個地方我用碰撞和碰撞我打的是音頻文件:

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

ball:addEventListener("collision", onCollisionSound) 

我也試圖與媒體的API,但它也沒有工作。

+0

您是否嘗試在高端手機上部署? – DevfaR

回答

1

這可能是OpenAL的問題。所有audio.*方法都基於OpenAL,這本來不支持Android NDK(它改爲支持OpenSL ES)。使它工作的解決方案仍然是一個有點馬車,並可能引入一些的Android版本/設備的延遲:一個已知問題:

(從audio.play()電暈SDK文檔直接)

注意使用Android會導致聲音在啓動時延遲1秒至2秒 秒。

您可以嘗試使用棄用media.* API,而不是不使用的OpenAL,這可能會解決你的問題。

+0

感謝您的回覆。我使用了媒體API,但現在我感覺在播放聲音時會暫停。例如,如果球在接觸地面之前必須接觸地面,它會掛起然後接觸地面,但音頻是同步的。 – Kamran

0

通常在Android 4.1及更高版本中,音頻。* API調用不應該滯後。谷歌修復了4.1版本中的錯誤,但在舊版本中,它仍然是一個問題。但是,這並不意味着設備製造商沒有做過一些損害音效的事情。如果需要準確的時間,我們建議使用媒體。* API調用。

此外,請確保您的聲音片段在開始時沒有任何延遲。