使用RecordRTChuo每秒获取视频流时,我在ondataavailable回调函数中返回参数的stream为什么会报错呢?我看官方文档好像是录制完视频之后拿到视频流,RecordRTC是不是本身就仅仅做视频录制的?不能作为实时传输数据吗?
代码如下:
var myVideo = document.getElementById('myVideo')
var img = document.getElementById('img')
let recorder = new Object();
var videoStearm = new Object();
function openRecord() {
navigator.mediaDevices.getUserMedia({
video: {
width: "200",
height: "200",
frameRate: 24
},
audio: true,
elementClass: 'multi-streams-mixer'
}).then(async function(stearm) {
videoStearm = stearm;
//把流赋值给video 实现实时录制
myVideo.srcObject = stearm;
//立马开始播放视频流
myVideo.play();
recorder = RecordRTC(stearm, {
type: 'video',
//视频类型
mimeType: 'video/mp4',
timeSlice: 1000,
//该回调函数必须和上面的timeSlice分片时间配合使用
//实时传输录制数据:使用WebRTC的数据通道将录制的数据实时传输给服务器
//通过webRTC数据通道发送这些块
ondataavailable: function (blob) {
console.log(blob)
},
// 获取时间片段的时间戳
onTimeStamp: function (timestamp) {
},
bitsPerSecond: 128000,
})
//开启录制
recorder.startRecording()
//const sleep = m => new Promise(r => setTimeout(r, m));
//await sleep(10000);
}).catch((err) => {
console.log('用户未开启视频权限')
})
}