html5 錄制mp3音頻支持采樣率和比特率設置
發(fā)布時間:2021-07-12 14:59:34 作者: Devin Liu
我要評論

最初有個開源項目libmp3lame-js,直接將 lame 源碼編譯為 js版本,后來有人基于libmp3lame使用 js 進行了重寫,就是如今的lamejs 項目。相比libmp3lame ,自身體積更小,而且能實現(xiàn)更快的編碼速度。據介紹說,編碼一個132秒長度的音頻僅需6.5秒
13年的時候做過html5錄音,一個問題是保存的wav格式文件很大,當初用了一個迂回的方式,上傳到服務器后調用 lame 編碼器轉換,但由于文件大,上傳較慢。不得不說,前端技術發(fā)展真是日新月異,有人實現(xiàn)了js版本的lame編碼器,可以直接在瀏覽器端錄制MP3音頻。
lamejs介紹
最初有個開源項目libmp3lame-js,直接將 lame 源碼編譯為 js版本,后來有人基于libmp3lame使用 js 進行了重寫,就是如今的lamejs 項目。相比libmp3lame ,自身體積更小,而且能實現(xiàn)更快的編碼速度。據介紹說,編碼一個132秒長度的音頻僅需6.5秒。
錄制mp3音頻
我對代碼進行了梳理和封裝,已發(fā)布到Github,參見 mp3-recorder。對實現(xiàn)過程有興趣或對使用lamejs有興趣的,可以參考我的源碼。支持Firefox 及 Webkit瀏覽器。
采用64kbps比特率,錄制一分鐘音頻長度約為480KB。
調用示例
/* MP3的采樣頻率分為 48000 44100 32000 24000 22050 16000 12050 8000 比特率值與現(xiàn)實音頻對照(僅供參考) 16Kbps=電話音質 24Kbps=增加電話音質、短波廣播、長波廣播、歐洲制式中波廣播 40Kbps=美國制式中波廣播 56Kbps=話音 64Kbps=增加話音(手機鈴聲最佳比特率設定值、手機單聲道MP3播放器最佳設定值) 112Kbps=FM調頻立體聲廣播 128Kbps=磁帶(手機立體聲MP3播放器最佳設定值、低檔MP3播放器最佳設定值) 160Kbps=HIFI高保真(中高檔MP3播放器最佳設定值) 192Kbps=CD(高檔MP3播放器最佳設定值) 256Kbps=Studio音樂工作室(音樂發(fā)燒友適用) */ //唯一影響mp3文件大小的參數(shù)為 bitRate //sampleRate 僅供特殊需求的人使用 var recorder = new MP3Recorder({ //numChannels: 1, //聲道數(shù),默認為1 //sampleRate: 8000, //采樣率,一般由設備提供,比如 48000 bitRate: 64, //比特率,不要低于64,否則可能錄制無聲音(人聲) //錄音結束事件 complete: function (data, type) { //blob為mp3音頻數(shù)據 var blob = new Blob(data, { type: type }); } }); //開始錄音 recorder.start(onSuccess, onError); //停止錄音 recorder.stop(); //暫停錄音 recorder.pause(); //恢復錄音 recorder.resume();
使用很簡單,demo有詳細代碼,在此就不多說了。
代碼下載
到此這篇關于html5 錄制mp3音頻支持采樣率和比特率設置的文章就介紹到這了,更多相關html5 錄制mp3音頻內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!
相關文章
- 這篇文章主要介紹了HTML5自定義mp3播放器源碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-06
- 這篇文章主要介紹了HTML5實時語音通話聊天,MP3壓縮傳輸3KB每秒,需要的朋友可以參考下2019-08-28