PHP 7.4.33
Preview: video-recording.js Size: 4.86 KB
/home/justbyquicklly-old/justbyquicklly/www/js/video-recording.js

'use strict';

/* globals MediaRecorder */

let mediaRecorder;
let recordedBlobs;

const errorMsgElement = document.querySelector('span#errorMsg');
const recordedVideo = document.querySelector('video#recorded');
const recordButton = document.querySelector('button#record');
const playButton = document.querySelector('button#play');
const downloadButton = document.querySelector('button#download');


recordButton.addEventListener('click', () => {
	
  if (recordButton.textContent === 'Start') {
    startRecording();
	
  } else {
    stopRecording();
    recordButton.textContent = 'Start';
    playButton.disabled = false;
    downloadButton.disabled = false;
  }
});


playButton.addEventListener('click', () => {
  const superBuffer = new Blob(recordedBlobs, {type: 'video/webm'});
  recordedVideo.src = null;
  recordedVideo.srcObject = null;
  recordedVideo.src = window.URL.createObjectURL(superBuffer);
  recordedVideo.controls = true;
  recordedVideo.play();
});


downloadButton.addEventListener('click', () => {
  const blob = new Blob(recordedBlobs, {type: 'video/mp4'});
  const url = window.URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.style.display = 'none';
  a.href = url;
  a.download = 'test.mp4';
  //alert(url);
 
//Creating blob url which is only valid for the browser
//where the application is running
//var videoSrc = URL.createObjectURL(blob);
let rid=$("#hdnRecipentDetails").val();//document.getElementById('hdnRecipentDetails').value; 
//alert(rid);
   var formdata = new FormData();
            formdata.append('blobFile', blob);
            formdata.append('rid', rid);

            fetch('uploader.php', {
                method: 'POST',
                body: formdata
            }).then(()=>{
                //alert('streamed video file uploaded')
            })
  
  /*document.body.appendChild(a);
  a.click();
  setTimeout(() => {
    document.body.removeChild(a);
    window.URL.revokeObjectURL(url);
  }, 100);*/
});

function handleDataAvailable(event) {
  console.log('handleDataAvailable', event);
  if (event.data && event.data.size > 0) {
    recordedBlobs.push(event.data);
  }
}

function startRecording() {
	//alert('ok');
	$('#counterstop').attr("id", "counter"); 
	$("#record").removeClass('start').addClass('stop');
	$("#record").attr('title','Stop Video');
  recordedBlobs = [];
  let options = {mimeType: 'video/webm;codecs=vp8,opus'};
  try {
    mediaRecorder = new MediaRecorder(window.stream, options);
  } catch (e) {
    console.error('Exception while creating MediaRecorder:', e);
    errorMsgElement.innerHTML = `Exception while creating MediaRecorder: ${JSON.stringify(e)}`;
    return;
  }

  console.log('Created MediaRecorder', mediaRecorder, 'with options', options);
  recordButton.textContent = 'Stop';
  playButton.disabled = true;
  downloadButton.disabled = true;
  mediaRecorder.onstop = (event) => {
    console.log('Recorder stopped: ', event);
    console.log('Recorded Blobs: ', recordedBlobs);
  };
  mediaRecorder.ondataavailable = handleDataAvailable;
  mediaRecorder.start();
  console.log('MediaRecorder started', mediaRecorder);
  timer('startimmer');
  $("#download").hide();
  $("#refresh").hide();
}
  
function timer(a)
{
    console.log(a);
  var count = 0, timer = setInterval(function() {
      let va = $("#counter").text();
    $("#counter").html((va++)+1);
    if(a=='startimmer')
{
        if(va > 60) clearInterval(timer);
        if(va>60)
        {
            $("#counter").html(60);
}
    }
    else
    {
     clearInterval(timer);
    console.log('clearinterval');
    }
    //console.log(va);

}, 1000);

}

function stopRecording() {
  mediaRecorder.stop();
  $("#record").removeClass('stop').addClass('start');
  $("#record").attr('title','Start Video');
  let a=$("#counter").html();
  $('#counter').attr("id", "counterstop"); 
  $("#counterstop").html(a);
  $("#download").show();
  $("#refresh").show();
  timer(a);
}

function handleSuccess(stream) {
  recordButton.disabled = false;
  console.log('getUserMedia() got stream:', stream);
  window.stream = stream;

  const gumVideo = document.querySelector('video#gum');
  gumVideo.srcObject = stream;
}

async function init(constraints) {
  try {
    const stream = await navigator.mediaDevices.getUserMedia(constraints);
    handleSuccess(stream);
  } catch (e) {
    console.error('navigator.getUserMedia error:', e);
    errorMsgElement.innerHTML = `navigator.getUserMedia error:${e.toString()}`;
  }
}

document.querySelector('button#start').addEventListener('click', async () => {
  const hasEchoCancellation = document.querySelector('#echoCancellation').checked;
  const constraints = {
  audio: true, 
  video: true
  };
  console.log('Using media constraints:', constraints);
  await init(constraints);
});

Directory Contents

Dirs: 1 × Files: 76

Name Size Perms Modified Actions
js DIR
- drwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.88 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
2.30 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
11.93 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
10.15 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
97.52 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
145.32 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
43.45 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
3.58 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
143.28 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
7.21 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
361.59 KB lrwxrwxr-x 2025-01-14 16:18:39
Edit Download
298.60 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
2.43 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
14.01 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
8.29 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
6.03 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
2.81 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
27.83 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
3.79 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.78 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
274.21 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
80.92 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
48.19 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
38.00 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
56.09 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
1.46 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
6.03 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
92.56 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
90.93 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
222.23 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
13.36 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
18.68 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
16.80 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
1.54 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
2.47 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
93.57 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
9.08 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
38.24 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
94.04 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
11.31 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
19.95 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
60.17 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.59 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
668 B lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
14.54 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
30.96 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
9.64 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
10.03 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
33.93 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
69.58 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
679 B lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
496 B lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
3.73 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
3.19 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
18.56 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
6.91 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
1.30 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
617 B lrwxrwxr-x 2024-09-19 11:54:09
Edit Download
1.17 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
589 B lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
12.18 KB lrwxrwxr-x 2024-09-19 11:55:16
Edit Download
12.87 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.76 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
1.58 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
342 B lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.01 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
67.78 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
3.96 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
18.74 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
13.14 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
1.85 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
20.22 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
2.43 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
20.42 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.86 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download
4.67 KB lrwxrwxr-x 2024-09-19 08:57:28
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).