zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

在Chrome瀏覽器中處理autoplay的一些技巧

在撰寫部落格時,我想在網頁中加入我喜歡的音樂,這樣在寫作和閱讀時,心情也會比較愉悅,這時候,我們就需要使用audio這個標籤。

 <audio src=""></audio>

同時 audio 標籤還帶有很多實用的屬性,常用的有以下幾個:

  • src -- 這個就不說了,懂的都懂
  • autoplay -- 如果出現該屬性,音頻在就緒後馬上播放
  • controls -- 網頁中顯示音頻控件
  • loop -- 循環播放
  • muted -- 默認靜音

但是我在設置 autoplay 的時候發現,chrome 對自動播放深惡痛絕,直接從根源上限制了這個屬性的開啟,意思是說,這個屬性直接禁用,在打開網頁沒有交互的情況下,不允許自動播放。

但仔細想一想,這個做法其實是對用戶比較有利的。假設用戶使用的時候寬帶流量,直接自動播放視頻、音頻,就會對用戶造成損失。甚至一些廣告會自動播放,這就直接影響到了用戶的體驗。所以,對於 chrome 的做法我還是比較贊同的。

回過頭一想,不對啊,我的目的是解決這個問題,不是讚揚谷歌的。我想給自己的個人部落格添加喜歡的音樂,所以我找了一個不算辦法的辦法。我直接在模擬一個事件,當滑鼠點擊網頁任意處時,自動觸發 autoplay 的音頻效果,直接上程式碼。

<script>
    function toggleSound() {
      var music = document.getElementById("vd");          
      //獲取ID  
      console.log(music);
      console.log(music.paused);
      if (music.paused) { 
        //判斷是否播放  
        music.paused=false;
        music.play(); 
        //沒有就播放 
      }  
    }
    setInterval("toggleSound()",1);
</script>

這樣處理過之後,插入音頻,任意點擊網頁某個地方,都會觸發播放效果,但凡事有利有弊,這樣做的話,一旦開啟播放,將無法啟用暫停功能,也就是說會一直播放下去

如果是像我這樣寫個人部落格,這個弊端倒是影響不大,我在這裡記錄一下這個方法。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。