This commit is contained in:
yumoqing 2025-09-29 17:51:33 +08:00
parent b216d0ad1f
commit c3740ad92f

View File

@ -128,30 +128,24 @@ bricks.SysVideoRecorder = class extends bricks.MediaRecorder {
}
this.mimetype = 'video/mp4';
this.stream = await navigator.mediaDevices.getUserMedia(options);
const track = this.stream.getVideoTracks()[0];
const settings = track.getSettings();
this.imageCapture = new ImageCapture(track);
this.camera_height = settings.height;
this.camera_width = settings.width;
this.imgw = new bricks.Image({width: '100%'});
this.preview.add_widget(this.imgw);
this.task = schedule_once(this.show_picture.bind(this), this.task_period);
}
get_camera_size(){
const track = stream.getVideoTracks()[0];
const settings = track.getSettings();
return [settings.width, settings.height]
}
show_picture(){
if (this.task_period == 0){
return;
}
var canvas = document.createElement('canvas');
var size = this.get_camera_size();
canvas.height = size[1];
canvas.width = size[0];
const context = canvas.getContext('2d');
context.drawImage(this.video, 0, 0);
this.dataurl = canvas.toDataURL('image/jpeg', 0.95);
const blob = await this.imageCapture.takePhoto();
this.dataurl = URL.createObjectURL(blob);
this.imgw.set_url(this.dataurl);
this.task = schedule_once(this.show_picture.bind(this),
this.task_period);
this.show_cnt += 1;
}
close_recorder(){
super.close_recorder();