[英]Libgdx sound plays after delay in Android
我正在 Libgdx (Android) 中構建一個游戲,每次用戶觸摸某個對象時我都會播放聲音。 對象的聲音和視覺選擇應該協調一致,但是當我播放聲音時,由於我調用 sound.play() 和聲音開始實際播放的那一刻,所以有 200 毫秒的延遲。
我正在使用 AssetManager 在游戲開始之前加載所有聲音文件,並且我已經確認時間延遲在 sound.play() 調用和 sound.getPosition() 停止為 0 之間。所以我的問題是,什么發生在這里? 考慮到文件已經加載,Libgdx 或 Android 在這兩個需要 200 毫秒的時刻之間做什么? 這是一個 .wav 文件,所以根本沒有壓縮太多。 有什么我遺漏的或有什么方法可以解決嗎?
在 libGDX 1.9.12 中,您可以使用AsynchronousAndroidAudio
來幫助您解決問題。
您可以通過在AndroidLauncher
類中覆蓋此方法來更改默認的 LibGDX 行為並使用AsynchronousAndroidAudio
:
@Override
public AndroidAudio createAudio(Context context, AndroidApplicationConfiguration config) {
return new AsynchronousAndroidAudio(context, config);
}
有一個限制:沒有使用聲音 ID 的選項。
此外,如果出於任何原因您需要聲音 ID,您可以將此實現作為示例,並為您的項目找到解決方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.