詳解Howler.js Web音頻播放終極解決方案
前言
相信有很多人在寫移動端音頻播放的時(shí)候都踩過不少坑,特別是復(fù)雜音頻項(xiàng)目在兼容多種設(shè)備的時(shí)候更是讓你抓狂,比如ios端不能一開始就播放音頻,必須要用戶進(jìn)行了操作。。。。
偶然間了解到了一個(gè)兼容所有設(shè)備和瀏覽器的音頻引擎Howler.js 使用了一下非常完美
Howler.js 是一個(gè)新的 JavaScript 庫用于處理 Web 中的音頻,該庫最初是為一個(gè) HTML5 游戲引擎所開發(fā),但也可用于其他的 Web 項(xiàng)目,Howler.js 基于 Google 的 Web Audio API,能夠幫助你快速簡單全面的控制音頻。
特點(diǎn)及兼容性
- Howler.js默認(rèn)使用Web Audio,但在IE上可以自動轉(zhuǎn)為HTML 5 Audio。這點(diǎn)很是貼心。
- 移動端的Safari和Chrome都禁止網(wǎng)頁自動播放聲音,必須通過用戶的操作,touch, click等觸發(fā)。Howler.js可以設(shè)置成自動捕捉用戶操作激活(解禁)聲音播放。
- Howler.js支持很多聲音格式以兼容各種瀏覽器。MP3, MPEG, OPUS, OGG, OGA, WAV, AAC, CAF, M4A, MP4, WEBA, WEBM, DOLBY, FLAC.幾乎涵蓋了所有格式
- 支持3D游戲
- 自動緩存
- 支持淡入淡出效果
- 輕量
- 純JS
- 無第三方依賴
- 模塊化
「更多特性可以去Github查看 Howler.js」
使用方法
官網(wǎng)上都有介紹 這里不過多討論
import {Howl, Howler} from 'howler'; // 初始化一個(gè)音頻類 const sound = new Howl({ src: ['sound.webm', 'sound.mp3'] }); // 播放音頻 sound.play(); // 改變?nèi)忠纛l聲音大小 Howler.volume(0.5); // 只想改變某個(gè)音頻的大小可以在初始化的時(shí)候修改 const sound = new Howl({ src: ['sound.webm', 'sound.mp3'], volume:0.5 });
使用Howler.js
最基本的,一個(gè)MP3播放:
var sound = new Howl({ urls: ['sound.mp3'] }).play();
更多的播放選項(xiàng):
var sound = new Howl({ urls: ['sound.mp3', 'sound.ogg', 'sound.wav'], autoplay: true, loop: true, volume: 0.5, onend: function() { console.log('Finished!'); } });
定義和播放某一部分的音頻
var sound = new Howl({ urls: ['sounds.mp3', 'sounds.ogg'], sprite: { blast: [0, 1000], laser: [2000, 3000], winner: [4000, 7500] } }); // shoot the laser! sound.play('laser');
總結(jié)
自己封裝的音頻庫多多少少會有一些性能和兼容問題,比如音頻循環(huán)播放的時(shí)候Howler就處理的非常好不會有切割的感覺
到此這篇關(guān)于詳解Howler.js Web音頻播放終極解決方案的文章就介紹到這了,更多相關(guān)Howler.js Web音頻播放內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)簡單鐘表時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡單鐘表時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10javascript eval()應(yīng)用實(shí)例 select
javascript eval應(yīng)用小例子。實(shí)例代碼就是控制checkbox的選擇與取消的函數(shù),非常不錯(cuò)。2009-07-0711個(gè)教程中不常被提及的JavaScript小技巧(推薦)
這篇文章主要介紹了11個(gè)教程中不常被提及的JavaScript小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04淺析在javascript中創(chuàng)建對象的各種模式
下面小編就為大家?guī)硪黄獪\析在javascript中創(chuàng)建對象的各種模式。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05JS實(shí)現(xiàn)仿Windows7風(fēng)格的網(wǎng)頁右鍵菜單效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)仿Windows7風(fēng)格的網(wǎng)頁右鍵菜單效果代碼,涉及JavaScript鼠標(biāo)右鍵響應(yīng)及動態(tài)生成頁面菜單的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09js 三級關(guān)聯(lián)菜單效果實(shí)例
這篇文章介紹了js 三級關(guān)聯(lián)菜單效果,有需要的朋友可以參考一下2013-08-08