簡體   English   中英

使用javascript在移動設備中播放多種音頻聲音

[英]Play multiple audio sounds in mobile devices with javascript

我正在開發一款具有不同聲音的游戲。

我正在使用以下播放它們

var jackpot_audio_file = document.getElementById('jackpot_sound');
jackpot_audio_file.play();

它可以完美地在桌面上運行,但不能在移動設備上運行。 有些播放是因為我先單擊然后播放聲音,但對於其余不需要用戶單擊任何內容的操作則無效。

我嘗試將模擬點擊與trigger('click')一起使用,但它也沒有起作用。

我知道這是一個古老的問題,但是我也遇到了同樣的問題,並找到了解決之道。

您可能已經意識到,您無法觸發聲音在移動環境中自行播放。 為了使其播放,需要用戶進行觸摸事件。

因此,我做了以下工作:

1-我已經宣布要播放的所有聲音

var sound1 = new Audio('file1.mp3');
var sound2 = new Audio('file1.mp3');
var sound3 = new Audio('file1.mp3');

2-我創建了一個帶有按鈕的屏幕,用戶必須單擊該按鈕才能繼續游戲:

<button onclick="proceeed()">proceeed</button>

3-聲明要通過此按鈕調用的功能,該功能會將所有音頻音量設置為零,全部播放,暫停所有,然后繼續游戲:

function proceed() {
    sound1.volume = 0;
    sound2.volume = 0;
    sound3.volume = 0;

    sound1.play();
    sound1.pause();
    sound2.play();
    sound2.pause();
    sound3.play();
    sound3.pause();

    sound1.volume = 1;
    sound2.volume = 1;
    sound3.volume = 1;

    startGame();
}

這樣,所有聲音都可以通過觸摸事件“播放”並加載到內存中。 下次在應用程序中要播放聲音時,只需調用

sound1.play();

即使播放了其他聲音,聲音也會播放。

仍然我們不能使其自動播放,但是我們可以“誘騙”用戶說服我們需要的事件,以便免費播放聲音。 它允許您具有背景主題並在其上播放聲音效果。

您可以在此處檢查結果:

http://thechase.besaba.com (在移動設備上打開)。

可以在以下位置找到源代碼: https : //github.com/Vinas/theChase

希望這是有用的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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