bugfix
This commit is contained in:
parent
cebf2fed0d
commit
a5365d5842
@ -4,7 +4,7 @@ bricks.MediaRecorder = class extends bricks.Popup {
|
|||||||
constructor(opts){
|
constructor(opts){
|
||||||
super(opts);
|
super(opts);
|
||||||
opts.fps = opts.fps || 30;
|
opts.fps = opts.fps || 30;
|
||||||
this.task_period = 1 / this.fps;
|
this.fps_period = 1 / this.fps;
|
||||||
this.task = null;
|
this.task = null;
|
||||||
this.stream = null;
|
this.stream = null;
|
||||||
this.normal_stop = false;
|
this.normal_stop = false;
|
||||||
@ -40,11 +40,11 @@ bricks.MediaRecorder = class extends bricks.Popup {
|
|||||||
async switch_record(){
|
async switch_record(){
|
||||||
console.log('toggle_record called');
|
console.log('toggle_record called');
|
||||||
if (this.record_status == 'standby'){
|
if (this.record_status == 'standby'){
|
||||||
this.start_recorder();
|
this.start_record();
|
||||||
this.toggle_record.set_url(bricks_resource('imgs/stop_recording.svg'));
|
this.toggle_record.set_url(bricks_resource('imgs/stop_recording.svg'));
|
||||||
this.record_status = 'recording';
|
this.record_status = 'recording';
|
||||||
} else {
|
} else {
|
||||||
this.stop_recorder();
|
this.stop_record();
|
||||||
this.toggle_record.set_url(bricks_resource('imgs/start_recording.svg'));
|
this.toggle_record.set_url(bricks_resource('imgs/start_recording.svg'));
|
||||||
this.record_status = 'standby';
|
this.record_status = 'standby';
|
||||||
}
|
}
|
||||||
@ -55,7 +55,7 @@ bricks.MediaRecorder = class extends bricks.Popup {
|
|||||||
async open_recorder(){
|
async open_recorder(){
|
||||||
console.debug('open recorder for record');
|
console.debug('open recorder for record');
|
||||||
}
|
}
|
||||||
async start_recorder(){
|
async start_record(){
|
||||||
this.normal_stop = false;
|
this.normal_stop = false;
|
||||||
this.mediaRecorder = new MediaRecorder(this.stream,
|
this.mediaRecorder = new MediaRecorder(this.stream,
|
||||||
{mimeType: this.mimetype});
|
{mimeType: this.mimetype});
|
||||||
@ -95,7 +95,7 @@ bricks.MediaRecorder = class extends bricks.Popup {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.start_time = Date.now();
|
this.start_time = Date.now();
|
||||||
this.task = schedule_interval(this.tick_task.bind(this), this.task_period);
|
this.task = schedule_interval(this.tick_task.bind(this), 0.5);
|
||||||
this.mediaRecorder.start();
|
this.mediaRecorder.start();
|
||||||
this.dispatch('record_started')
|
this.dispatch('record_started')
|
||||||
console.log("Recording started...");
|
console.log("Recording started...");
|
||||||
@ -103,7 +103,7 @@ bricks.MediaRecorder = class extends bricks.Popup {
|
|||||||
async blob_convert(blob){
|
async blob_convert(blob){
|
||||||
return blob;
|
return blob;
|
||||||
}
|
}
|
||||||
stop_recorder(){
|
stop_record(){
|
||||||
if (this.task){
|
if (this.task){
|
||||||
clearInterval(this.task);
|
clearInterval(this.task);
|
||||||
this.task = null;
|
this.task = null;
|
||||||
@ -241,15 +241,9 @@ bricks.SysVideoRecorder = class extends bricks.MediaRecorder {
|
|||||||
this.imgw = new bricks.Image({width: '100%'});
|
this.imgw = new bricks.Image({width: '100%'});
|
||||||
this.preview.add_widget(this.imgw);
|
this.preview.add_widget(this.imgw);
|
||||||
this.toggle_record.disabled(false);
|
this.toggle_record.disabled(false);
|
||||||
}
|
this.fps_task = schedule_interval(this.show_picture.bind(this), this.fps_period);
|
||||||
async tick_task(){
|
|
||||||
await super.tick_task();
|
|
||||||
await this.show_picture();
|
|
||||||
}
|
}
|
||||||
async show_picture(){
|
async show_picture(){
|
||||||
if (this.task_period == 0){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var blob = await this.imageCapture.takePhoto();
|
var blob = await this.imageCapture.takePhoto();
|
||||||
this.dataurl = URL.createObjectURL(blob);
|
this.dataurl = URL.createObjectURL(blob);
|
||||||
this.imgfile = new File([blob],
|
this.imgfile = new File([blob],
|
||||||
@ -257,6 +251,13 @@ bricks.SysVideoRecorder = class extends bricks.MediaRecorder {
|
|||||||
{ type: 'image/jpeg' });
|
{ type: 'image/jpeg' });
|
||||||
this.imgw.set_url(this.dataurl);
|
this.imgw.set_url(this.dataurl);
|
||||||
}
|
}
|
||||||
|
close_recorder(){
|
||||||
|
super.close_recorder();
|
||||||
|
if (this.fps_task){
|
||||||
|
stopInterval(this.fps_task);
|
||||||
|
this.fps_task = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bricks.SysCamera= class extends bricks.SysVideoRecorder {
|
bricks.SysCamera= class extends bricks.SysVideoRecorder {
|
||||||
switch_record(){
|
switch_record(){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user