欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中播放音頻文件的幾種常用方法

 更新時(shí)間:2023年10月09日 09:55:00   作者:小柴沒(méi)吃飽  
JS可以用來(lái)播放多種聲音文件,包括常見(jiàn)的mp3、wav等格式,這篇文章主要給大家介紹了關(guān)于JavaScript中播放音頻文件的幾種常用方法,需要的朋友可以參考下

前言

我們可以使用 <audio> 標(biāo)簽將音頻文件添加到頁(yè)面中。這是播放音頻文件而不涉及 JavaScript 的最簡(jiǎn)單方法。<audio> 標(biāo)簽的 src 屬性指定音頻文件的地址。它還具有其他有用的屬性,例如控制,自動(dòng)播放和循環(huán)。但是有時(shí)候,我們想要自動(dòng)控制并自動(dòng)播放聲音,例如在游戲中,單擊或任何其他事件時(shí)。在這種情況下,我們希望 JavaScript 根據(jù)我們的邏輯來(lái)控制和播放文件。

[在 JavaScript 中使用 .play() 播放音頻文件]

我們只需創(chuàng)建音頻對(duì)象實(shí)例即可使用 JavaScript 加載音頻文件,即使用 new Audio()。加載音頻文件后,我們可以使用 .play() 函數(shù)對(duì)其進(jìn)行播放。

const music = new Audio('adf.wav');
music.play();
music.loop =true;
music.playbackRate = 2;
music.pause();qqazszdgfbgtyj

在上面的代碼中,我們加載一個(gè)音頻文件,然后簡(jiǎn)單地播放它。JavaScript 為我們提供了很多靈活性和大量功能。我們可以控制播放速率,循環(huán)播放音頻,暫停和播放聲音。唯一的問(wèn)題是,一次處理多個(gè)聲音,與最新技術(shù)相比,其控制能力有限。

[使用 Web Audio API 播放音頻文件]

盡管設(shè)置起來(lái)有些麻煩,但是 Web Audio API 為我們提供了很多靈活性和對(duì)聲音的控制。它是對(duì)典型 HTML5 音頻的重大改進(jìn),并允許復(fù)雜的音頻處理。它使用 HTML5 音頻將音頻元素表示為稱為音頻上下文的有向圖樣結(jié)構(gòu)上的節(jié)點(diǎn)。音頻源和目的地之間可以連接許多類型的節(jié)點(diǎn),例如音量節(jié)點(diǎn),可以幫助我們操縱音量。

<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();

在這里,我們首先初始化音頻上下文,并獲得對(duì)音頻文件源的引用。然后,我們將該源連接到全球目標(biāo),然后完成音頻設(shè)置。

[使用 howler.js 庫(kù)以 JavaScript 播放音頻文件]

howler.js 是一個(gè)音頻處理庫(kù)。它使我們能夠利用 Web Audio API 的功能和 HTML 5 Audio 的簡(jiǎn)單性。它廣泛用于 react 類組件,以處理基于瀏覽器的音頻,尤其是在播放多個(gè)音頻源時(shí)。它可以使用 Howler 對(duì)象控制全局音頻上下文,然后使用 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實(shí)現(xiàn)音頻文件的播放和暫停

HTML5 規(guī)定了一種通過(guò) audio 元素來(lái)包含音頻的標(biāo)準(zhǔn)方法。

audio 元素能夠播放聲音文件或者音頻流。

注意看,a.paused表示當(dāng)前音頻的狀態(tài),而音頻的暫停和播放對(duì)應(yīng)的方法分別為pause()和play() ——-(自認(rèn)為很值得注意的地方 我當(dāng)時(shí)就犯了這種錯(cuò)誤)

<button onclick="clickA(this)">播放/暫停</button>
<audio id="audio" src="raw/1.mp3">您的瀏覽器不支持</audio>
<script>
    var a = document.getElementById("audio");
    function clickA() {
        //如果暫停   點(diǎn)擊即可播放
        if (a.paused) {
            // 播放
            a.play();
            //如果播放  點(diǎn)擊暫停
        } else if (a.play()) {
            //暫停
            a.pause();
        }
    }
</script>

總結(jié)

到此這篇關(guān)于JavaScript中播放音頻文件的幾種常用方法的文章就介紹到這了,更多相關(guān)JS播放音頻文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • echarts中幾種漸變方式的具體實(shí)現(xiàn)方式

    echarts中幾種漸變方式的具體實(shí)現(xiàn)方式

    在使用echarts繪制圖表時(shí),有的時(shí)候需要使用漸變色,下面這篇文章主要給大家介紹了關(guān)于echarts中幾種漸變方式的具體實(shí)現(xiàn)方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Javascript事件熱鍵兼容ie|firefox

    Javascript事件熱鍵兼容ie|firefox

    Javascript熱鍵兼容ie,firefox,需要的朋友可以參考下。
    2010-12-12
  • Electron中關(guān)于靜態(tài)資源加載問(wèn)題的解決方案

    Electron中關(guān)于靜態(tài)資源加載問(wèn)題的解決方案

    通常,我們?cè)谑褂胑lectron框架的時(shí)候會(huì)使用到loadFile/loadURL進(jìn)行頁(yè)面的加載,分別是加載本地文件和加載網(wǎng)絡(luò)文件,當(dāng)nuxtjs/nextjs想引入到electron中顯示時(shí),你會(huì)遇到資源路徑引用的問(wèn)題,所以本文給大家介紹了Electron中關(guān)于靜態(tài)資源加載問(wèn)題的解決方案
    2024-12-12
  • JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn)

    JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn)

    本文主要介紹了JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 原生javascript上傳圖片帶進(jìn)度條【實(shí)例分享】

    原生javascript上傳圖片帶進(jìn)度條【實(shí)例分享】

    本文主要介紹了原生javascript上傳圖片帶進(jìn)度條的實(shí)例詳解。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • 微信小程序彈窗組件使用詳解

    微信小程序彈窗組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序彈窗組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js保留兩位小數(shù)最簡(jiǎn)單的實(shí)現(xiàn)方法

    js保留兩位小數(shù)最簡(jiǎn)單的實(shí)現(xiàn)方法

    JS數(shù)據(jù)格式化是在進(jìn)行web前端開(kāi)發(fā)時(shí)常碰到的事情,特別是在數(shù)據(jù)類型為Float的數(shù)據(jù)就需要特殊處理,如保留兩位小數(shù)、小數(shù)點(diǎn)后的數(shù)據(jù)是否需要四舍五入等等,下面這篇文章主要給大家介紹了關(guān)于js保留兩位小數(shù)最簡(jiǎn)單的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2023-05-05
  • 使用Javascript在HTML中顯示實(shí)時(shí)時(shí)間

    使用Javascript在HTML中顯示實(shí)時(shí)時(shí)間

    這篇文章主要為大家詳細(xì)介紹了使用Javascript在HTML中顯示實(shí)時(shí)時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • iframe的onload在Chrome/Opera中執(zhí)行兩次Bug的解決方法

    iframe的onload在Chrome/Opera中執(zhí)行兩次Bug的解決方法

    創(chuàng)建iframe對(duì)象,添加load事件, 再將iframe添加到body中。Chrome/Opera中會(huì)造成load事件的handler執(zhí)行兩次。
    2011-03-03
  • ASP中用Join和Array,可以加快字符連接速度的代碼

    ASP中用Join和Array,可以加快字符連接速度的代碼

    ASP中用Join和Array,可以加快字符連接速度的代碼...
    2007-08-08

最新評(píng)論