日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

一段简单的html 5 音频,5个用于处理HTML5音频的库和API

發布時間:2023/12/1 HTML 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一段简单的html 5 音频,5个用于处理HTML5音频的库和API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在過去的幾個月中,我遇到了許多不同的庫,它們利用了相對較新的HTML5 Audio API以及更著名的HTML5 Audio Element及其更簡單的API。

我以為我會在本文中分享這些庫中的一小部分,以向您展示如果選擇創建需要操縱聲音文件的游戲或應用程序,可能的情況以及有哪些選擇。

其中一些庫隨附的一些演示非常不錯,并且每個庫的代碼都非常干凈且易于使用。

1. webaudiox.js

Webaudiox.js并不是一個庫,而是一組用于使用Web Audio API的幫助程序。 它具有零依賴性,并且可以在任何支持Web Audio API的瀏覽器中使用。

該文檔以樣板形式提供了一個簡單的代碼示例,如下所示:

// after including the webaudiox library

var context = new AudioContext()

// Create lineOut

var lineOut = new WebAudiox.LineOut(context)

// load a sound and play it immediatly

WebAudiox.loadBuffer(context, 'sound.wav', function(buffer){

// init AudioBufferSourceNode

var source = context.createBufferSource();

source.buffer = buffer

source.connect(lineOut.destination)

// start the sound now

source.start(0);

});

如第一個代碼注釋中所示,必須首先包含webaudiox.js幫助程序文件才能使其正常工作。

除了它們的語法外觀之外,這并不能告訴我們很多有關這些幫助器的信息。 要查看其工作原理,請看analyser2canvas Helper 。 該幫助程序利用AnalyserNode接口的優勢實時顯示所播放聲音的可視化。

webaudiox.js GitHub存儲庫還有許多其他示例可以嘗試。 當然,為了使這些演示正常工作,您的瀏覽器必須支持Web Audio API(稍后會對此進行更多介紹)。 這組幫助程序不是polyfill,因此,如果您需要較舊的瀏覽器支持,那么除非您計劃將其與另一個腳本或庫或某種后備方式結合使用,否則這不是一個好選擇。

據我所知,webaudiox.js可能是在HTML5游戲中使用的不錯選擇。

2. Howler.js

Howler.js被簡單地吹捧為“現代Web的JavaScript音頻庫”,默認為Web Audio API,而后退為HTML5 audio 。

該庫的功能廣泛。 一些重點包括:

支持多種文件格式,以更廣泛地支持瀏覽器

Web Audio API和HTML5音頻的緩存功能

同時播放多軌

全局和單軌靜音/取消靜音和音量控制

方法鏈

3KB gzip,沒有依賴項

描述該庫的官方博客文章包括許多演示如何執行的頁面演示,因此請務必檢查一下。

為了演示語法,這是一個很酷的示例,稱為“聲音精靈”,您可以在一個聲音文件中定義不同聲音的位置:

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

我喜歡這種語法,該API外觀簡潔明了,似乎很容易理解和開始使用。 因為這使用了新的Web Audio API并回退到了HTML5音頻,所以對瀏覽器的支持很強。

該庫的作者將其描述為“游戲的絕佳之選”,但對于任何其他與音頻相關的網絡應用程序同樣如此。

3. Pedalboard.js

像到目前為止討論的以前的庫一樣, Pedalboard.js也使用Web Audio API,但這一次它用于在聲源上創建音頻效果,尤其是針對吉他效果。 簡而言之,您可以使用此API創建自己的踏板,通過它可以操縱吉他聲音。 向您展示此API的強大功能的一個很好的例子是Pedals.io ,“云中的吉他效果”:

API的語法是面向對象的,因此它很干凈且易于使用。 這是一個例子:

// initialize the stage and get the context

var stage = new pb.Stage();

var ctx = stage.getContext();

// initialize the board and pedals

var board = new pb.Board(ctx);

var od = new pb.stomp.Overdrive(ctx);

var reverb = new pb.stomp.Reverb(ctx);

var vol = new pb.stomp.Volume(ctx);

// add pedals to board

board.addPedals([od, reverb]);

board.addPedalsAt(1, vol);

// tweak pedal settings

od.setDrive(0.7);

od.setLevel(0.7);

reverb.setLevel(0.3);

vol.setLevel(0.2);

// set the board on stage and start playing!

stage.setBoard(board);

上面的代碼基于一個“舞臺”對象,該對象包含“木板”,而該木板又包含能夠創建所需效果的“踏板”。

誠然,這不一定會成為構建游戲或其他應用程序的最有用的庫,但是我敢肯定,如果有一些創造性的思考,您可以為此提供一些很棒的東西。 該庫可在任何支持Web Audio API的瀏覽器中使用。

附帶說明一下,如果您喜歡此庫,則可能還需要查看Band.js ,這是一種“音樂作曲家” API,支持節奏,多種樂器,重復部分和復雜的拍號 。

4.一團

Wad代表Web Audio DAW(數字音頻工作站),它被描述為“耳朵上的jQuery”。 它是一個庫,可幫助簡化使用Web Audio API的音頻處理。

這是語法示例,其中介紹了使用“方波”合成的鋼琴音軌:

var piano = new Wad({

source : 'square',

env : {

attack : .01,

decay : .005,

sustain : .2,

hold : .015,

release : .3

},

filter : {

type : 'lowpass',

frequency : 1200,

q : 8.5,

env : {

attack : .2,

frequency : 600

}

}

})

piano.play({ pitch : 'C5' })

piano.play({ pitch : 'Eb5', filter : { q : 15 } })

piano.play({ pitch : 'F5', env : { release : .2 } })

再次,一個非常干凈的API具有很多功能。 您可以在此演示頁面上測試上述代碼以及其他示例(軍鼓,長笛,踩hi等)。

功能包括平移,3D平移,過濾器(如上面的代碼所示),混響,麥克風輸入以及從外部庫中合并效果的功能。

作者指出,該庫中的一個主要缺陷是它似乎無法在Firefox中工作。

5.費弗

Fifer是HTML5音頻API的“微型庫”,在較舊的瀏覽器中可以使用輕量級Flash版本。

該語法包括許多用于游戲或其他應用程序的音頻的簡單可鏈接方法。

API的功能包括:

預加載并注冊文件

播放帶有可選循環和結束回調的文件

同時停止或靜音單個文件或所有文件

這是語法示例:

Fifer({ swf : '../Fifer.swf' }).loaded(function(files) {

console.log('loaded');

this.bang();

}).onAudioProcess(function(arr) {

console.log(arr);

}).registerAudio('bang','bang.mp3',true)

該庫非常簡單明了,因此對于想要在Fifer基礎上構建更大的項目來說,它可能是一個不錯的選擇。 如上所述,最大的好處是,當Web Audio API不可用時,它將回落到Flash。

并請注意,此API基于HTML5音頻,而不是Web Audio API,因此支持返回到HTML5和IE8的IE9,以及Flash后備的早期版本。

該倉庫有一個非常簡單的示例 ,可以在此處預覽 。 沒什么,只是帶有SWF后備的MP3格式的“砰”聲。

Web Audio API資源

上面討論的所有庫都使您可以使用Web Audio API的強大功能和功能,而不必深入研究該規范,從而提供了一個不錯的簡潔API。

但是,如果您想學習API來構建自己的東西,請查閱Boris Smus撰寫的《 Web Audio API 》一書,該書可以從O'Reilly免費在線獲得,也可以購買印刷版或典型的電子版。

還有HTML5 Rocks上的Web Audio簡介 ,以及有關MDN 主題的文檔 。

瀏覽器支持

如果您選擇的庫使用HTML5音頻,則包括IE9 +在內的任何地方都可以使用支持。 但是,如果該庫使用Web Audio API(與上述所有庫(Fifer除外)一樣),則支持效果不佳 。

一些移動瀏覽器缺少支持,而Safari需要供應商前綴。 但是,最糟糕的消息是,沒有支持Web Audio API的IE版本,甚至沒有IE11。 對于IE團隊來說,這是一個未解決的問題 ,因此希望很快會有所改變。

From: https://www.sitepoint.com/5-libraries-html5-audio-api/

總結

以上是生活随笔為你收集整理的一段简单的html 5 音频,5个用于处理HTML5音频的库和API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。