类型 :
提示 : -
比特率 :
kbps,越大音质越好
采样率 :
hz,越大细节越丰富
kbps 测试音质用的,除比特率外其他参数可调整
ms自动停止录音,定时录音
切换麦克风 :
从未请求过录音权限时,可能无法正常拉取设备列表,打开一次录音后可尝试
noiseSuppression :
降噪(ANS)配置开关
echoCancellation :
回声消除(AEC)配置开关
autoGainControl :
自动增益(AGC)配置开关
sampleRate :
(仅供测试)强制指定流的采样率,可能会出现浏览器不能正确选用麦克风、移动端无法启用回声消除等现象
以上参数设置后需重新打开录音;均为set中的audioTrackSet高级配置,会直接传递给浏览器的getUserMedia方法,不同浏览器的支持程度不同,并不一定会生效;这些参数不设置时浏览器给的默认状态是打开还是关闭将不确定;
移动端打开降噪、回声消除可能会表现的很怪异(包括系统播放音量变小),但iOS上如果关闭又可能导致录音没有声音,如需更改配置请Android和iOS分别配置,并测试好
启用MediaRecorder :
音频采集连接方式:启用时尝试使用MediaRecorder.WebM.PCM,默认启用,未启用或者不支持时使用AudioWorklet或ScriptProcessor;通过设置Recorder.ConnectEnableWebM=false禁用。
使用MediaRecorder采集到的音频数据比其他方式更好,几乎不存在丢帧现象,所以音质明显会好很多,建议保持开启;
有些浏览器不支持录制PCM编码的WebM,如FireFox、低版本的Chrome,将依旧使用AudioWorklet或ScriptProcessor来连接采集。
启用AudioWorklet :
音频采集连接方式:启用时尝试使用AudioWorklet,默认禁用,未启用或者不支持时使用ScriptProcessor;通过设置Recorder.ConnectEnableWorklet=true启用。
丢失补偿 :
issues#51如果没有进行补偿,录音时设备偶尔出现很卡的情况下(CPU被其他程序大量占用),浏览器采集到的音频是断断续续的,导致10秒的录音可能就只返回了5秒的数据量,这个时候最终编码得到的音频时长明显变短,播放时的效果就像快放一样。未禁用时会在卡顿时自动补偿静默音频,消除了快放效果,但由于丢失的音频已被静默数据代替,听起来就是数据本身的断断续续的效果。在设备不卡时录音没有此问题。
Destroy :
Destroy会关闭所有的全局资源,包括AudioContext,当录音出现问题时,可尝试Destroy一下重试
阻止自动锁屏 :
手机锁屏后是否能录音不可控,直接简单粗暴的调用wakeLock接口 或 静音+循环播放视频来阻止锁屏,就是有点费电
暴力测试 :
小时的录音数据,测试长时间录音编码和内存泄露
暴力测试 :
,每个会录5秒,打开浏览器控制台查看日志
浏览器环境情况 :
问题自检 : 录音时注意观察灰色区域是否有绿色音量跳动,没有绿色跳动说明Recorder没有获取到声音数据。如果测试发现mp3没有声音,可以试一下wav格式,如果wav格式有声音,说明内置lamejs
mp3编码器有问题。如果都没有,下载下来播放看看有没有。下载下来也没有声音可以反馈一下。