最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript Audio 對象知識點整理

 更新時間:2025年07月08日 11:00:11   作者:泫凝  
Audio對象是JavaScript內(nèi)置的 API,用于在網(wǎng)頁中播放音頻文件,可以通過new Audio()創(chuàng)建音頻對象,也可以使用HTMLAudioElement的各種方法控制音頻播放,本文給大家介紹JavaScript Audio 對象知識點,感興趣的朋友一起看看吧

Audio 對象是 JavaScript 內(nèi)置的 API,用于在網(wǎng)頁中播放音頻文件??梢酝ㄟ^ new Audio() 創(chuàng)建音頻對象,也可以使用 HTMLAudioElement 的各種方法控制音頻播放。

??1. 創(chuàng)建Audio對象

方法 1:使用new Audio()

const sound = new Audio('sound/hit.mp3');
sound.play();
  • 適合簡單的音效播放
  • 但同一個 Audio 實例同時只能播放一個音效,如果短時間內(nèi)多次觸發(fā),會導(dǎo)致音頻被打斷

方法 2:使用document.createElement('audio')

const sound = document.createElement('audio');
sound.src = 'sound/hit.mp3';
document.body.appendChild(sound);
sound.play();
  • 適用于更復(fù)雜的音頻控制,比如動態(tài)修改 src 或監(jiān)聽 ended 事件。

??2.Audio重要屬性

屬性

說明

src

設(shè)置音頻文件的路徑

volume

設(shè)置音量(范圍 0.0 ~ 1.0

currentTime

獲取/設(shè)置音頻當(dāng)前播放時間

duration

獲取音頻的總時長(秒)

loop

是否循環(huán)播放 (true/false

)

paused

是否暫停狀態(tài) (true/false

)

示例:

const sound = new Audio('sound/hit.mp3');
sound.volume = 0.5; // 設(shè)置音量 50%
console.log(`音頻總時長:${sound.duration} 秒`);

??3.Audio重要方法

方法

作用

play()

播放音頻

pause()

暫停音頻

load()

重新加載音頻

playbackRate

設(shè)置播放速度(如 1.5

為 1.5 倍速播放)

addEventListener('ended', callback)

監(jiān)聽音頻播放結(jié)束事件

示例:

const sound = new Audio('sound/hit.mp3');
// 播放音頻
sound.play();
// 2秒后暫停
setTimeout(() => {
    sound.pause();
    console.log('音頻已暫停');
}, 2000);

??4. 處理多個音效

如果想在短時間內(nèi)播放多個音效(比如游戲中的子彈聲音),使用 多個 Audio 實例:

const playSound = () => {
    const sound = new Audio('sound/hit.mp3');
    sound.volume = Math.random(); // 隨機音量
    sound.play();
};
document.addEventListener('click', playSound);

這樣可以避免 Audio 被覆蓋的問題。

??5. 解決瀏覽器的自動播放限制

現(xiàn)代瀏覽器禁止網(wǎng)頁自動播放音頻,需要用戶交互(如點擊)后才能播放:

document.addEventListener('click', () => {
    const sound = new Audio('sound/hit.mp3');
    sound.play().catch(err => console.log('音頻播放失敗:', err));
}, { once: true });
  • catch() 處理播放失敗的情況
  • { once: true } 確保只觸發(fā)一次

??6. 監(jiān)聽音頻事件

Audio 對象支持多種事件,可以監(jiān)聽音頻的狀態(tài):

事件

觸發(fā)時機

play

開始播放時

pause

暫停時

ended

播放完畢

error

發(fā)生錯誤

示例:

const sound = new Audio('sound/hit.mp3');
sound.addEventListener('ended', () => {
    console.log('音頻播放完畢');
});
sound.play();

??7. 使用Web Audio API(高級玩法)

如果需要更精細的音效控制,比如:

  • 3D 音效
  • 混音
  • 音頻可視化 可以使用 Web Audio API
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
const sound = new Audio('sound/hit.mp3');
const track = audioContext.createMediaElementSource(sound);
track.connect(audioContext.destination);
sound.play();

但相比 AudioWeb Audio API 更復(fù)雜,適合需要高級音效處理的場景。

??8. 總結(jié)

需求

解決方案

簡單播放音效

new Audio('sound.mp3').play();

防止音效被覆蓋

每次創(chuàng)建新的 Audio

實例

監(jiān)聽播放狀態(tài)

addEventListener('ended', callback)

避免瀏覽器攔截音頻

用戶點擊事件后 play()

高級音效處理

Web Audio API

這樣,你就可以在 three.js + cannon.js 中,使用 Audio 來播放碰撞音效啦! 

到此這篇關(guān)于JavaScript Audio 對象知識點的文章就介紹到這了,更多相關(guān)js audio對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序前端自定義分享的實現(xiàn)方法

    微信小程序前端自定義分享的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于微信小程序前端自定義分享的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 一文解決微信小程序button、input和image表單組件

    一文解決微信小程序button、input和image表單組件

    在微信小程序開發(fā)中,input?用來實現(xiàn)文本輸入,如輸入用戶名密碼等等,下面這篇文章主要給大家介紹了關(guān)于如何通過一文解決微信小程序button、input和image表單組件的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 淺談Javascript中的函數(shù)、this以及原型

    淺談Javascript中的函數(shù)、this以及原型

    下面小編就為大家?guī)硪黄獪\談Javascript中的函數(shù)、this以及原型。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • JS保存、讀取、換行、轉(zhuǎn)Json報錯處理方法

    JS保存、讀取、換行、轉(zhuǎn)Json報錯處理方法

    JS保存、讀取 換行 轉(zhuǎn)Json報錯異常信息:Unexpected token ILLEGAL,具體解決方法如下,感性的朋友可以參考下哈
    2013-06-06
  • js實現(xiàn)踩五彩塊游戲

    js實現(xiàn)踩五彩塊游戲

    這篇文章主要為大家詳細介紹了js實現(xiàn)踩五彩塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 利用d3.js力導(dǎo)布局繪制資源拓撲圖實例教程

    利用d3.js力導(dǎo)布局繪制資源拓撲圖實例教程

    這篇文章主要給大家介紹了關(guān)于如何利用d3.js力導(dǎo)布局繪制資源拓撲圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • JavaScript本地數(shù)據(jù)存儲sessionStorage與localStorage使用詳解

    JavaScript本地數(shù)據(jù)存儲sessionStorage與localStorage使用詳解

    這篇文章主要介紹了JavaScript本地數(shù)據(jù)存儲sessionStorage與localStorage使用,localStorage:永久存儲在本地,適合保存在本地的數(shù)據(jù)。sessionStorage:會話級的存儲,敏感帳號一次登陸
    2022-10-10
  • JavaScript緩動動畫函數(shù)的封裝方法

    JavaScript緩動動畫函數(shù)的封裝方法

    這篇文章主要為大家詳細介紹了JavaScript緩動動畫函數(shù)的封裝方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • uniapp自定義驗證碼輸入框并隱藏光標

    uniapp自定義驗證碼輸入框并隱藏光標

    這篇文章主要介紹了uniapp自定義驗證碼輸入框隱藏光標,效果是點擊輸入框喚起鍵盤,藍框就相當(dāng)于input的光標,驗證碼輸入錯誤或者不符合格式要求會將字體以及邊框改成紅色提示持續(xù)1s然后清空數(shù)據(jù),恢復(fù)原邊框樣式,需要的朋友可以參考下
    2023-02-02
  • Openlayers實現(xiàn)面積測量的方法

    Openlayers實現(xiàn)面積測量的方法

    在Openlayers中,長度和面積的測量均依賴ol/sphere模塊,長度通過getLength方法計算,面積則通過getArea方法,面積測量不是計算平面面積,而是基于球面,適用于多邊形和多多邊形集合,感興趣的朋友一起看看吧
    2024-11-11

最新評論

隆尧县| 盐津县| 胶州市| 汪清县| 永清县| 潜山县| 呼和浩特市| 高陵县| 上饶市| 德江县| 广昌县| 济阳县| 淮滨县| 谷城县| 平潭县| 株洲市| 泗阳县| 二手房| 扶余县| 江华| 黎城县| 饶阳县| 越西县| 苍南县| 永城市| 浦城县| 拉萨市| 江安县| 牡丹江市| 新和县| 修水县| 锦屏县| 闽侯县| 资阳市| 岫岩| 高密市| 千阳县| 乌拉特中旗| 栾川县| 峨眉山市| 海盐县|