|
@@ -307,10 +307,9 @@ export class LoginComponent implements OnInit {
|
307
|
307
|
// 录屏
|
308
|
308
|
isRecording:boolean = false;
|
309
|
309
|
async showScreen(e){
|
310
|
|
- if(this.isRecording){
|
|
310
|
+ if(this.isRecording || !navigator.mediaDevices){
|
311
|
311
|
return;
|
312
|
312
|
}
|
313
|
|
- this.isRecording = true;
|
314
|
313
|
e.preventDefault();
|
315
|
314
|
let stream = await (navigator.mediaDevices as any).getDisplayMedia({ video: true });
|
316
|
315
|
let mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ? "video/webm; codecs=vp9" : "video/webm";
|
|
@@ -318,11 +317,12 @@ export class LoginComponent implements OnInit {
|
318
|
317
|
let mediaRecorder = new MediaRecorder(stream, { mimeType: mime });
|
319
|
318
|
let chunks = [];
|
320
|
319
|
//录制
|
321
|
|
- mediaRecorder.addEventListener('dataavailable', function (e) {
|
|
320
|
+ mediaRecorder.addEventListener('dataavailable', (e) => {
|
|
321
|
+ this.isRecording = true;
|
322
|
322
|
chunks.push(e.data)
|
323
|
323
|
})
|
324
|
324
|
//停止
|
325
|
|
- mediaRecorder.addEventListener('stop', function () {
|
|
325
|
+ mediaRecorder.addEventListener('stop', () => {
|
326
|
326
|
let blob = new Blob(chunks, { type: chunks[0].type });
|
327
|
327
|
let url = URL.createObjectURL(blob);
|
328
|
328
|
let a = document.createElement('a');
|