国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

基于JS實現web端錄音與播放功能

2024-05-06 15:40:32
字體:
來源:轉載
供稿:網友

純js實現web端錄音功能,功能并不是特別多,逐步增加中,詳細地址:github。

getUserMedia在非localhost和127的情況下,需要開啟https,由于騰訊云的沒備案,demo就不放了,可以自行獲取代碼并啟動測試。

實現方式

實現原理的話,主要是以下三點,

利用webrtc的getUserMedia方法獲取設備音頻輸入,使用audioprocess得到音頻流(pcm流,范圍-1到1)。 轉碼,利用前端中的ArrayBuffer等二進制操作按采樣位數處理流信息。 使用decodeAudioData轉碼arraybuffer到audioBuffer并播放(小文件,大文件使用audio)。

使用方式

script方式

直接引入dist下的recorder.js即可

let recorder = new Recorder();

npm方式

安裝:

npm i js-audio-recorder

調用:

import Recorder from 'js-audio-recorder';let recorder = new Recorder();

API

基本方法

// 開始錄音recorder.start();// 暫停錄音recorder.pause();// 繼續錄音recorder.resume()// 結束錄音recorder.stop();// 錄音播放recorder.play();// 銷毀錄音實例,釋放資源,fn為回調函數,recorder.destroy(fn);recorder = null;下載功能// 下載pcm文件recorder.downloadPCM();// 下載wav文件recorder.downloadWAV();// 重命名pcm文件,wav也支持recorder.downloadPCM('重命名');獲取錄音時長// 回調持續輸出時長recorder.onprocess = function(duration) {  console.log(duration);}// 手動獲取錄音時長console.log(recorder.duration);

默認配置

sampleBits,采樣位數,默認是16
sampleRate,采樣頻率,瀏覽器默認的,我的chrome是48000
numChannels,聲道數,默認是1

傳入參數

new Recorder時支持傳入參數,

{  sampleBits: 16,     // 采樣位數,范圍8或16  sampleRate: 16000,   // 采樣率,范圍11025、16000、22050、24000、44100、48000  numChannels: 1,     // 聲道,范圍1或2}

注意

使用127.0.0.1或localhost嘗試,因為getUserMedia在高版本的chrome下需要使用https。

兼容性

主要是以下幾個方面:

Web Audio Api

https://caniuse.com/#search=w...

getUserMedia

https://caniuse.com/#search=g...

Typed Arrays

https://caniuse.com/#search=t...

歡迎訪問和查看:recorder。

總結

以上所述是小編給大家介紹的基于JS實現web端錄音與播放功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對錯新站長站網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 晋城| 香格里拉县| 铅山县| 七台河市| 方山县| 洛浦县| 仁化县| 修武县| 民勤县| 长泰县| 宁国市| 揭西县| 乐至县| 仁布县| 娄底市| 石林| 吴桥县| 丹江口市| 开鲁县| 越西县| 平阳县| 泰宁县| 香港 | 当雄县| 玉门市| 星子县| 康马县| 霍州市| 信丰县| 尤溪县| 南京市| 卢龙县| 岳池县| 田阳县| 山东省| 西乡县| 长海县| 洪泽县| 贵德县| 酉阳| 三台县|