All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.graphenee.vaadin.component.record-audio.js Maven / Gradle / Ivy

var gxMediaRecorder;
var gxAudioElement;
var gxAudioData;

function gxStartRecording() {
	navigator.mediaDevices.getUserMedia({ audio: true })
	  .then(stream => {
		gxMediaRecorder = new MediaRecorder(stream);
		gxMediaRecorder.start(4096);

		const chunkReader = new FileReader();
		chunkReader.onloadend = function() {
	        const base64data = chunkReader.result;                
	        io.graphenee.vaadin.component.record_audio.uploadChunk(base64data);
	    }
		
		const fileReader = new FileReader();
		fileReader.onloadend = function() {
	        io.graphenee.vaadin.component.record_audio.recordingStopped();
	    }
		
	    const audioChunks = [];
	    gxMediaRecorder.addEventListener("dataavailable", event => {
	      audioChunks.push(event.data);
	      chunkReader.readAsDataURL(event.data);
	    });

	    gxMediaRecorder.addEventListener("stop", () => {
	      gxAudioData = new Blob(audioChunks);
	      gxAudioElement = new Audio(URL.createObjectURL(gxAudioData));
	      fileReader.readAsDataURL(gxAudioData);
	    });
	});
}

function gxStopRecording() {
	if(gxMediaRecorder !== null) {
		gxMediaRecorder.stop();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy