【音】MediaRecorder支持录制类型情况

最近有有需求,需要捕获用户的脸部表情以及上课的表现情况, 用于提供给AI部门进行算法练习,研究了一下mediaRecorder 录制stream
在这里插入图片描述

video/webm
video/webm;codecs=vp8
video/webm;codecs=vp9
video/webm;codecs=vp8.0
video/webm;codecs=vp9.0
video/webm;codecs=h264
video/webm;codecs=H264
video/webm;codecs=avc1
video/webm;codecs=vp8,opus
video/WEBM;codecs=VP8,OPUS
video/webm;codecs=vp9,opus
video/webm;codecs=vp8,vp9,opus
video/webm;codecs=h264,opus
video/webm;codecs=h264,vp9,opus
video/x-matroska;codecs=avc1
audio/webm
audio/webm;codecs=opus

整体使用

function createAudioElement(blobUrl) {
    const downloadEl = document.createElement('a');
    downloadEl.style = 'display: block';
    downloadEl.innerHTML = 'download';
    downloadEl.download = 'audio.webm';
    downloadEl.href = blobUrl;
    document.body.appendChild(downloadEl);
}

async function download() {
	try {
	let stream = await navigator.mediaDevices.getUserMedia({
			audio: true,
          	video: false
		})
	let recorder = new MediaRecorder(stream, {mimeType: type});
	recorder.start(0)
	recorder.addEventListener('dataavailable', function (e) {
      if (e.data.size > 0) {
     	 console.log('ok', e.data.size, chunks.length)
        chunks.push(e.data);
      }
      if (recorder.state == 'inactive') {
          const blob = new Blob(chunks, { type: type });
          var reader = new FileReader();
          reader.onload = function () {
          	console.log(reader.result); // base64格式 
          }
          // reader.readAsText(blob, 'utf-8')
          reader.readAsDataURL(blob, 'utf-8')
          // reader.readAsBinaryString(blob, 'utf-8')
          // reader.readAsArrayBuffer(blob, 'utf-8')
          createAudioElement(URL.createObjectURL(blob));
      }
    }, false);
	}catch(e) {
	
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值