八、视频录制基础知识-MediaRecorder

MediaRecorder 基本格式

let mediaRecorder = New MediaRecorder(stream, [options])
参数 说明
stream 媒体流,可以从getUserMedia,
options 限制选项

options 限制选项

选项 说明
mimeType (指定录制的音频还是视频以及录制的格式) 1.vide/webm (或者video/mp4)等 2.audio/webm 3.video/webm;codecs=vp8 4.vide/webm;codecs=h264 5.audio/webm; codecs=opus
audioBitsPerSecond 音频码率
videoBitsPerSecond 视频码率(码率越高,清晰度越高)
bitsPerSecond 整体码率

MediaRecorder API

  • MediaRecorder.start(timeslice)
    开始录制媒体,timeslice是可选的。
    如果设置了会按时间切片存储数据,若不设置,所有录制数据都会存储到一个大的Buffer中
  • MediaRecorder.stop()
    停止录制,会触发包括最终Bolb数据的 detaavailable事件
  • MediaRecorder.pause()
    暂停录制
  • MediaRecorder.resume()
    恢复录制
  • MediaRecorder.isTypeSupported()
    检查支持录制的文件格式

MediaRecorder 事件

  • MediaRecorder.ondataavailable
    当数据有效时触发,可监听此事件,当数据有效,存储到缓冲区中,会传event和data,data为真正数据
    每次记录一定事件的数据时,会定期触发。没有指定时间片,则记录整个数据时触发
  • MediaRecorder.onerror
    当有错误发生时,录制会自动被停止

JavaScript 几种存储数据方式

  • 字符串
  • Blob
    十分高效的和存储区域,Buffer 可放到Blob,可将整个缓存区写入文件中
  • ArrayBuffer
    可通过 Blob对 Buffer做各种操作
  • ArrayBufferView
    各种各样的 Buffer,都可以做 Blob的参数

生成文件用 Blob,底层数据一般用 ArrayBuffer或 ArrayBufferView

注:移动端兼容性较差,iOS不兼容,Android支持Chrome和微信

你可能感兴趣的:(八、视频录制基础知识-MediaRecorder)