126.0.6478.127 chrome desktop,M1 mac 机型静音问题
有用户反馈,在如上的电脑型号上录音有静音的问题,在 官方demo 则没有这个问题 https://mdn.github.io/dom-examples/media/web-dictaphone/ 大家有无遇到该问题?
Recorder默认也是使用的 MediaRecorder 获取音频数据,但多了个codec设置
new MediaRecorder(stream, {mimeType:"audio/webm; codecs=pcm"})
你可以修改一下mdn那个页面,MediaRecorder里面也加一下这个设置,试试是不是这个问题导致的
mediaRecorder.onstop里面直接把audioURL打印出来,复制这个url可以下载得到pcm文件,pcm文件拖进下面这个页面可以播放
https://xiangyuecn.github.io/Recorder/assets/%E5%B7%A5%E5%85%B7-%E8%A3%B8PCM%E8%BD%ACWAV%E6%92%AD%E6%94%BE%E6%B5%8B%E8%AF%95.html
这个问题又遇到了,也是 M1 机型,试了下老版本的测试页面没有问题: https://xiangyuecn.github.io/Recorder/assets/%E5%B7%A5%E5%85%B7-GitHub%E9%A1%B5%E9%9D%A2%E5%8E%86%E5%8F%B2%E7%89%88%E6%9C%AC%E8%AE%BF%E9%97%AE.html#url=xiangyuecn:[email protected],/ 请问新老版本有什么区别呢
改了一下官方html文件,加了 {mimeType:"audio/webm; codecs=pcm"} 参数,还是能正确工作
客户电脑里存在虚拟麦克风,该库的主测试页面: https://xiangyuecn.github.io/Recorder/ 在不设置麦克风的情况下:调用的是 getUserMedia({audio: {sampleRate: xxx}}) 不能使用正确的电脑默认麦克风设备,而选择了虚拟麦克风设备,导致无法录音。 原因还不明
去掉 trackSet[sampleRateTxt]=ctx[sampleRateTxt] 这个配置试试,可能是因为配置了sampleRate,同时设置 Recorder.ConnectEnableWebM=false 禁用掉MediaRecorder
https://github.com/xiangyuecn/Recorder/blob/ac2e44003a7019c6f4a3655ae44b5dd10ac00f35/src/recorder-core.js#L986-L990
hi, 经过测试,getUserMedia 中设置 audio 的 sampleRate 时,chrome 会根据该数据去选择麦克风。当 audio 为 true 时,chrome 会选择 chrome://settings/content/microphone 中设置的麦克风。这个比较符合我们的预期。
在使用该库时:如果传 audioTrackSet 为 true,在 react 中会有该类报错:Cannot create property 'sampleRate' on boolean 'true'
this.rec = Recorder({ type: 'mp3', audioTrackSet: true, sampleRate: option.config?.sampleRate || 32000, bitRate: option.config?.bitRate || 64, //mp3格式,指定采样率hz、比特率kbps,其他参数使用默认配置 });
能否在 trackSet[sampleRateTxt]=ctx[sampleRateTxt];//必须指明采样率,不然手机上MediaRecorder采样率16k 设置时,先判断 trackSet 是否为对象呢?如果是对象再设置采样率,否则就不设置了
下一版本看看删掉这个采样率配置,移除MediaRecorder支持
有些手机浏览器去掉采样率配置后可能无法打开录音,到时候调用getUserMedia的时候如果失败了要做一次重试,提供上采样率配置重试
新版本 1.3.24102001 已发布,已经删除了getUserMedia参数中的sampleRate配置;同时增强了对MediaRecorder的支持,返回的任意采样率数据均可正常录制