顺晟科技
2021-06-16 10:58:01
216
一个纯js实现了web端的录音功能,但是功能不是特别多,是逐渐增加的。详细地址:github。
当不是localhost或127时,GetUserMedia需要打开https。因为腾讯云不在文件上,所以不会发布demo,可以自己拿代码开始测试。
实施方式
要实现这个原则,主要有以下三点。
使用webrtc的getUserMedia方法获取设备的音频输入,使用audioprocess获取音频流(pcm流,范围-1到1)。
转码,利用前端的ArrayBuffer等二进制运算,根据采样位处理流信息。
使用decodeaudioData将数组缓冲代码转换为音频缓冲并播放(对于小文件,对大文件使用音频)。
使用方式
脚本模式
直接介绍dist下的recorder.js
let Recorder=new Recorder();
Npm模式
安装:
NPM I js-音频记录器
调用:
从“js-音频记录器”导入记录器;
let Recorder=new Recorder();
应用程序接口
基本方法
//开始录制
recorder . start();
//暂停录制
recorder . pause();
//继续录制
recorder.resume()
//结束录制
recorder . stop();
//录制和播放
recorder . play();
//破坏录制实例,释放资源,fn是回调函数,
recorder . destroy(fn);
记录器=null
下载功能
//下载pcm文件
recorder . downloadpcm();
//下载wav文件
recorder . DownLoadWav();
//重命名pcm文件,wav也支持此功能
录音机。download PCM(' rename ');
获取录制持续时间
//回调连续输出时间
recorder . on process=function(duration){
console.log(持续时间);
}
//手动获取录制时间
console . log(recorder . duration);
默认配置
采样位数,采样数,默认为16采样率,采样频率,浏览器默认,我的chrome是48000 numChannels,通道数,默认为1。
传入的参数
当新记录器,
{
采样位数: 16,//采样位数,范围8或16
采样率: 16000//采样率,范围11025,16000,22050,24000,44100,48000
NumChannels: 1,//通道,范围1或2
}
注意
请尝试使用127.0.0.1或localhost,因为getUserMedia在较高版本的chrome下需要使用https。
和睦相处
主要表现在以下几个方面:
网络音频应用编程接口
https://caniuse.com/#search=w…
getUserMedia
https://caniuse.com/#search=g…
类型化数组
https://caniuse.com/#search=t…
欢迎参观检查:录音机。
其他资源
基于阿里巴巴云,我们可以实现简单的语音识别功能、网络音频学习和音频播放,网络音频可以实现pcm音频数据采集,js可以实现pcm数据编码,js可以将pcm转换成wav格式并播放
04
2022-06
29
2021-08
16
2021-06
16
2021-06
16
2021-06
16
2021-06