亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于JS實現(xiàn)web端錄音與播放功能

 更新時間:2019年04月17日 08:51:58   作者:2FPS  
這篇文章主要介紹了純js實現(xiàn)web端錄音與播放功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

實現(xiàn)方式

實現(xiàn)原理的話,主要是以下三點,

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

使用方式

script方式

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

let recorder = new Recorder();

npm方式

安裝:

npm i js-audio-recorder

調(diào)用:

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

API

基本方法

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

默認配置

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

傳入?yún)?shù)

new Recorder時支持傳入?yún)?shù),

{
  sampleBits: 16,     // 采樣位數(shù),范圍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

總結(jié)

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

相關(guān)文章

最新評論