2016-05-04 35 views
0

玩我有一個簡單的程序,我運行此腳本:預載的Javascript音頻腳本

function PlayAudio(Location){ 
var audio = new Audio(Location); 
audio.Play() 
} 
在一個onclick HTML屬性

。我有一個花哨的加載圖片,我知道如何使其出現併成功地使其工作。我想在音頻加載時顯示此圖片,然後在音頻文件完成加載並準備播放後使其消失。現在,點擊元素和聽到聲音之間存在相當大的延遲。

我的問題是知道何時音頻完成加載並準備播放。我想知道什麼時候完成加載的最好方法是在腳本中預加載文件。我不知道該怎麼做。

而這就是我的問題: 如何在腳本中預加載文件? 或者,有沒有辦法知道音頻文件何時最終播放?

注:我不能使用<audio>元素,除非有某種方式來巢<div><audio>內部,使得在<audio>聲音通過點擊<div>

對不起爲內容的任何地方觸發了我略有混淆的描述!

感謝, 盧卡斯ñ

回答

0

您可以使用canplaythrough事件

發送時的準備狀態更改爲CAN_PLAY_THROUGH,表明 整個媒體可以不間斷播放,假設 下載速率至少保持在目前的水平。

function PlayAudio (Location){ 
    var audio = new Audio; 
    audio.oncanplaythrough = function(event) { 
    // do stuff, e.g.; set loading `img` `style` `display` to `none` 
    this.play(); 
    } 
    audio.src = Location; 
} 
+0

謝謝,這正是我需要的。我的項目完美地運作。 –

0

您可以通過

改變其預載ATTR。 audio.preload =「auto」;

它會啓動整個音頻文件