这篇文章主要介绍了基于JS如何实现web端录音与播放功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
JS是什么
JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于web的开发,可以给网站添加各种各样的动态效果,让网页更加美观。
getUserMedia在非localhost和127年的情况下,需要开启https,由于腾讯云的没备案,演示就不放了,可以自行获取代码并启动测试。
<强>实现方式强>
实现原理的话,主要是以下三点,
- <李>
利用webrtc的getUserMedia方法获取设备音频输入,使用audioprocess得到音频流(pcm流,范围1到1)。
李> <李>转码,利用前端中的ArrayBuffer等二进制操作按采样位数处理流信息。
李> <李>使用decodeAudioData转码ArrayBuffer到audioBuffer并播放(小文件,大文件使用音频)。
李><强>使用方式强>
<强>脚本方式强>
直接引入dist下的录音机。js即可
<代码>让录音机=new记录器();代码>
<强> npm方式强>
安装:
<代码> npm我js-audio-recorder 代码>
调用:
import Recorder 得到& # 39;js-audio-recorder& # 39;; let recorder =, new 记录器();
<强> API 强>
<>强基本方法强>
//,开始录音 recorder.start ();//,暂停录音 recorder.pause ();//,继续录音 recorder.resume ()//,结束录音 recorder.stop ();//,录音播放 recorder.play ();//,销毁录音实例,释放资源,fn为回调函数, recorder.destroy (fn); 时间=recorder 零; 下载功能//,下载pcm文件 recorder.downloadPCM ();//,下载wav文件 recorder.downloadWAV ();//,重命名pcm文件,wav也支持 recorder.downloadPCM(& # 39;重命名& # 39;); 获取录音时长//,回调持续输出时长 时间=recorder.onprocess 函数(持续时间),{ console.log才能(持续时间); }//,手动获取录音时长 console.log (recorder.duration);
<强>默认配置强>
sampleBits,采样位数,默认是16
sampleRate,采样频率、浏览器默认的,我的是铬48000
numChannels声道数,默认是1
<强>传入参数强>
新录音机时支持传入参数,
{ sampleBits才能:16日,,,,,,//,采样位数,范围8或16 sampleRate才能:16000年,,,,,//,采样率,范围11025,16000,22050,24000,44100,48000 numChannels才能:1,,,,,,//,声道,范围1或2 }
<>强注意强>
使用127.0.0.1或本地主机尝试,因为getUserMedia在高版本的铬下需要使用https。
感谢你能够认真阅读完这篇文章,希望小编分享的“基于JS如何实现web端录音与播放功能”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!