相关疑难解决方法(0)

MediaDevices.getUserMedia() 如何设置音频约束(采样率/位深度)?

使用浏览器Web API,我想设置适合录制音频语音(语音消息)的MediaDevices.getUserMedia 约束属性,例如设置这些参数:

  • 单核细胞增多症
  • 16位
  • 16KHz

这是我的代码:

   const mediaStreamConstraints = {
       audio: {
         channelCount: 1,
         sampleRate: 16000,
         sampleSize: 16,
         volume: 1
       },

       video: false
   }

   navigator.mediaDevices.getUserMedia(mediaStreamConstraints)
     .catch( err => serverlog(`ERROR mediaDevices.getUserMedia: ${err}`) )
     .then( stream => {

        // audio recorded as Blob 
        // and the binary data are sent via socketio to a nodejs server
        // that store blob as a file (e.g. audio/inp/audiofile.webm)

      } )

Run Code Online (Sandbox Code Playgroud)

录制的剪辑被抓取并存储(使用MediaRecorderAPI),最终发送到 Nodejs 服务器,其中 blob 被保存为文件并进行处理(该应用程序是一个语音机器人)。

出现问题,WebM 保存的文件没有所需的参数:

$ mediainfo audio/inp/audiofile.webm
General …
Run Code Online (Sandbox Code Playgroud)

browser audio audio-recording getusermedia mediadevices

8
推荐指数
2
解决办法
1万
查看次数