<a class="btn btn-video btn-sm" type="button" onclick="start()" ><i class="fa fa-play"></i></a>
<a class="btn btn-video btn-sm" type="button" onclick="end()" ><i class="fa fa-stop"></i></a>
var chunks = [];
var mediaRecorder;
var stream;
async function start() {
const audioTrack = await navigator.mediaDevices.getUserMedia({ audio: true });
stream = await openScreenCapture();
stream.addTrack(audioTrack.getAudioTracks()[0]);
mediaRecorder = new MediaRecorder(stream, {mimeType: 'video/webm'});
mediaRecorder.addEventListener('dataavailable', event => {
if (event.data && event.data.size > 0) {
chunks.push(event.data);
}
});
mediaRecorder.start(10);
}
function end() {
mediaRecorder.stop();
mediaRecorder = null;
stream.getTracks().forEach(track => track.stop());
stream = null;
var recording = window.URL.createObjectURL(new Blob(chunks, {type: 'video/webm'}));
const downloadLink = document.querySelector('a#download');
downloadLink.href = recording;
downloadLink.download = 'screen-recording.webm';
downloadLink.click();
}
function openScreenCapture() {
if (navigator.getDisplayMedia) {
return navigator.getDisplayMedia({ video: true });
} else if (navigator.mediaDevices.getDisplayMedia) {
return navigator.mediaDevices.getDisplayMedia({ video: true });
} else {
return navigator.mediaDevices.getUserMedia({
video: { mediaSource: 'screen' },
});
}
}
function takepicture() {
video = document.getElementById('rtc_1');
canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
if (400 && 300) {
canvas.width = 400;
canvas.height = 300;
context.drawImage(video, 0, 0, 400, 300);
} else {
context.fillStyle = "#AAA";
context.fillRect(0, 0, canvas.width, canvas.height);
}
}