JavaScript中播放音頻文件的幾種常用方法
前言
我們可以使用 <audio>
標簽將音頻文件添加到頁面中。這是播放音頻文件而不涉及 JavaScript 的最簡單方法。<audio>
標簽的 src
屬性指定音頻文件的地址。它還具有其他有用的屬性,例如控制,自動播放和循環(huán)。但是有時候,我們想要自動控制并自動播放聲音,例如在游戲中,單擊或任何其他事件時。在這種情況下,我們希望 JavaScript 根據(jù)我們的邏輯來控制和播放文件。
[在 JavaScript 中使用 .play() 播放音頻文件]
我們只需創(chuàng)建音頻對象實例即可使用 JavaScript 加載音頻文件,即使用 new Audio()
。加載音頻文件后,我們可以使用 .play()
函數(shù)對其進行播放。
const music = new Audio('adf.wav'); music.play(); music.loop =true; music.playbackRate = 2; music.pause();qqazszdgfbgtyj
在上面的代碼中,我們加載一個音頻文件,然后簡單地播放它。JavaScript 為我們提供了很多靈活性和大量功能。我們可以控制播放速率,循環(huán)播放音頻,暫停和播放聲音。唯一的問題是,一次處理多個聲音,與最新技術相比,其控制能力有限。
[使用 Web Audio API 播放音頻文件]
盡管設置起來有些麻煩,但是 Web Audio API 為我們提供了很多靈活性和對聲音的控制。它是對典型 HTML5 音頻的重大改進,并允許復雜的音頻處理。它使用 HTML5 音頻將音頻元素表示為稱為音頻上下文的有向圖樣結構上的節(jié)點。音頻源和目的地之間可以連接許多類型的節(jié)點,例如音量節(jié)點,可以幫助我們操縱音量。
<audio src='audio_file.mp3'></audio> const audioContext = new AudioContext(); const element = document.querySelector(audio); const source = audioContext.createMediaElementSource(element); source.connect(audioContext.destination) audio.play();
在這里,我們首先初始化音頻上下文,并獲得對音頻文件源的引用。然后,我們將該源連接到全球目標,然后完成音頻設置。
[使用 howler.js 庫以 JavaScript 播放音頻文件]
howler.js
是一個音頻處理庫。它使我們能夠利用 Web Audio API 的功能和 HTML 5 Audio 的簡單性。它廣泛用于 react 類組件,以處理基于瀏覽器的音頻,尤其是在播放多個音頻源時。它可以使用 Howler 對象控制全局音頻上下文,然后使用 Howl 控制音頻或一組音頻。
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.1/howler.min.js"></script> <script> var sound = new Howl({ src: ['https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'], volume: 1.0, onend: function () { alert('We finished with the setup!'); } }); sound.play() </script>
除 Internet Explorer 以外的所有主要瀏覽器都支持所有這些方法。Internet Explorer 不支持 Web Audio API 和 howler.js
。
附:利用JavaScript實現(xiàn)音頻文件的播放和暫停
HTML5 規(guī)定了一種通過 audio 元素來包含音頻的標準方法。
audio 元素能夠播放聲音文件或者音頻流。
注意看,a.paused表示當前音頻的狀態(tài),而音頻的暫停和播放對應的方法分別為pause()和play() ——-(自認為很值得注意的地方 我當時就犯了這種錯誤)
<button onclick="clickA(this)">播放/暫停</button> <audio id="audio" src="raw/1.mp3">您的瀏覽器不支持</audio> <script> var a = document.getElementById("audio"); function clickA() { //如果暫停 點擊即可播放 if (a.paused) { // 播放 a.play(); //如果播放 點擊暫停 } else if (a.play()) { //暫停 a.pause(); } } </script>
總結
到此這篇關于JavaScript中播放音頻文件的幾種常用方法的文章就介紹到這了,更多相關JS播放音頻文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
簡單的兩種Extjs formpanel加載數(shù)據(jù)的方式
這篇文章介紹了兩種Extjs formpanel加載數(shù)據(jù)的方式,有需要的朋友可以參考一下2013-11-11JavaScript實現(xiàn)獲取最近7天的日期的方法詳解
這篇文章主要想和大家分享一些JavaScript開發(fā)中會用到的小技巧,本文主要介紹了js獲取最近7天的日期,判斷當前日期時間大于指定日期時間等內(nèi)容,需要的可以參考一下2023-04-04寫入cookie的JavaScript代碼庫 cookieLibrary.js
cookieLibrary.js 寫入cookie的JavaScript代碼庫,需要的朋友可以參考下。2009-10-10