WebRTC技术详解:从0到1构建多人视频会议系统
上QQ阅读APP看书,第一时间看更新

2.8.2 MediaRecorder属性

1. mimeType只读

返回构造MediaRecorder对象时指定的MIME编码格式,如果在构造时未指定,则返回浏览器默认使用的编码格式,类型为字符串。

代码清单2-48调用getUserMedia方法获取音视频流,并指定mp4编码格式进行录制。

代码清单2-48 mimeType示例

if (navigator.mediaDevices) {
  console.log('getUserMedia supported.');

  const constraints = { audio: true, video: true };
  const chunks = [];

  navigator.mediaDevices.getUserMedia(constraints)
    .then(stream => {
      const options = {
        audioBitsPerSecond: 128000,
        videoBitsPerSecond: 2500000,
        mimeType: 'video/mp4'
      }
      const mediaRecorder = new MediaRecorder(stream,options);
      console.log(mediaRecorder.mimeType);
    }).catch(error => {
      console.log(error.message);
    });
2. state只读

返回MediaRecorder对象的当前状态,类型为RecordingState。RecordingState的定义如代码清单2-49所示。

代码清单2-49 RecordingState的定义

enum RecordingState {
  "inactive",
  "recording",
  "paused"
};

表2-12对RecordingState的属性进行了说明。

表2-12 RecordingState属性说明

048-01

代码清单2-50在onclick事件的处理函数中启动录制并打印录制的状态。

代码清单2-50 state示例

record.onclick = () => {
    mediaRecorder.start();
    console.log(mediaRecorder.state);
  }
3. stream只读

返回构造MediaRecorder对象时指定的媒体流对象,类型为MediaStream。

4. videoBitsPerSecond只读

返回当前的视频码率,可能与构造时指定的码率不同,类型为数值。

5. audioBitsPerSecond只读

返回当前的音频码率,可能与构造时指定的码率不同,类型为数值。

6. audioBitrateMode只读

返回音频轨道的码率模式,类型为BitrateMode。BitrateMode的定义如代码清单2-51所示。

代码清单2-51 BitrateMode的定义

enum BitrateMode {
  "cbr",
  "vbr"
};

其中,cbr指以固定码率进行编码,vbr指以可变码率进行编码。