2017-02-16 169 views
0

我試圖限制主題在我的實驗中只播放一次音頻文件。我正在使用下面的html代碼:允許播放音頻一次html

<audio src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 

有沒有辦法使用html做到這一點?如果不是我怎麼能適應這個JavaScript?

謝謝!

回答

1

這取決於你的規則是「只播放一次音頻文件」:當用戶點擊播放按鈕,還是在用戶聽完整個曲目後?

您不能禁用本機音頻控件,同時仍然可以看到它們。如果您希望能夠操作音頻控件,則需要使用JS,HTML和CSS自己的控件。這裏已經有圖書館了。

另外,如果您是善良的人,您應該讓用戶能夠停止音頻後,她的打法。

這裏是我會做:

  • 使用插件來添加自己的播放器控件
  • 只顯示播放/停止按鈕
  • 編寫JavaScript作爲「中扮演」當這標誌着該文件。 ..
    1. 玩家擊中停止按鈕,
    2. 當歌曲結束是REA高等教育委員會
  • 一旦音頻被認爲是「玩」,禁止播放按鈕
+0

謝謝@瑞恩,這非常有幫助! – Wolfgang

0

我會做到這一點的方法是放在一個名爲audioDiv

<div id="audioDiv"> 
    <audio onclick="playedOnce()" src="sound.mp3" type="audio/mp3" preload="auto" controls="controls" oncontextmenu="return false;">Audio could not be loaded.</audio> 
</div> 

DIV音頻,然後添加這個JavaScript方法某處

function playedOnce(){ 
    var children = document.getElementById("audioDiv").getElementsByTagName('*'); 
    for(var i = 0; i < children.length; i++){ 
     children[i].disabled = true; 
    } 

}

現在很明顯,這是一個shell方法,假設你只有一個音頻,所以也許你的javascript方法需要一個參數來決定哪一個禁用等。 此外,t他假設用戶不會簡單地刷新頁面。如果你想保持它隱藏,儘管用戶刷新頁面,我會看看PHP sessions

希望這會有所幫助!

+0

謝謝您的快速答覆Sishaar!我想你的代碼:

但它仍會播放多次,因爲我點擊它。你知道我是否以正確的方式實現你的代碼嗎? – Wolfgang

+0

嘿!我編輯了代碼繼續並禁用div的所有子項,即

+0

謝謝!我嘗試了編輯後的版本,但仍然會播放多次,因爲我點擊。 – Wolfgang