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

2.8.1 构造MediaRecorder

构造MediaRecorder对象的语法如下所示。

const mediaRecorder = new MediaRecorder(stream[, options]);
  • 参数:stream,MediaStrem对象,录制源;options,类型为MediaRecorderOptions的可选参数,MediaRecorderOptions的定义如代码清单2-46所示。

代码清单2-46 MediaRecorderOptions的定义

dictionary MediaRecorderOptions {
  DOMString mimeType = "";
  unsigned long audioBitsPerSecond;
  unsigned long videoBitsPerSecond;
  unsigned long bitsPerSecond;
  BitrateMode audioBitrateMode = "vbr";
};

MediaRecorderOptions属性如表2-11所示。

表2-11 MediaRecorderOptions属性说明

047-01

如果没有指定录制流的码率,则默认视频码率为2.5Mbps,音频码率取决于采样率和通道数。

如代码清单2-47所示,创建录制流,指定的视频编码格式是mp4,如果创建成功则返回MediaRecorder对象,创建失败则打印错误信息并返回null。

代码清单2-47 MediaRecorder构造函数示例

function getRecorder(stream) {
  const options = {
    audioBitsPerSecond : 128000,
    videoBitsPerSecond : 2500000,
    mimeType : 'video/mp4'
  };

  let mediaRecorder = null;
  try {
    mediaRecorder = new MediaRecorder(stream,options);
  } catch(e) {
    console.error('Exception while creating MediaRecorder: ' + e);
  }
  return mediaRecorder;
}