MediaRecorder是用来录制媒体的接口, 它接收一个媒体流, 对该媒体流进行录制.
使用
例子
const rc = new MediaRecorder(stream)
rc.start()
rc.ondataavailable = ({ data }) => {
// data is blob
videoElement.src = URL.createObjectURL(data)
}
setTimeout(() => {
rc.stop()
})
实例化
语法:
const rc = new MediaRecorder(stream[, options])
Recorder实例的属性及方法如下:
属性(均为只读)
mimeTypestate: 当前录制器状态, (inactive,recording,paused)stream: 当前录制器的录制源(媒体流)ignoreMutedMedia: 是否忽略无声的或者黑屏的视频, 默认进行录制videoBitsPerSecond: 视频码率audioBitsPerSecond: 音频码率
方法
-
isTypeSupported(mimetype)用来判断传入的
mimetype是否受当前环境(设备)支持 -
start(timeslice?)开始录制
timeslice为可选参数, 用于控制Recorder切割视频片段的间隔, 如果不设置则为连续, 否则会每隔timeslice毫秒自动调用一次requestData来返回该时间间隔内所录制的内容.该方法会触发 recorder 的
onstart事件 -
pause()暂停录制
该方法会触发 recorder 的
onpause事件 -
resume()恢复录制
该方法会触发 recorder 的
onresume事件 -
stop()停止录制
会触发
ondataavailable方法来返回录制内容, 同时将Recorder实例的state设置为inactive也会触发
onstop事件
事件
ondataavailableonerroronpauseonresumeonstartonstop