簡體   English   中英

在 Android 中延遲后播放 Libgdx 聲音

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM