JSFiddle - React, Tailwind, and code Playground

by steveseguin

JavaScript

function setupWebcamSelection(stream=null){
	log("setup webcam");
	
	if (stream){
		getById("previewWebcam").srcObject = stream;
	}
	
	try {
		return enumerateDevices().then(gotDevices).then(function(){
			//stream=null;
			//stream.getTracks().forEach(function(track) { // We don't want to keep it without audio; so we are going to try to add audio now.
			//	  track.stop(); // I need to do this after the enumeration step, else it breaks firefox's labels
			//	  stream.removeTrack(track);
			//});
			//stream=null;
			
			warnlog("enumerated");
			if (parseInt(getById("webcamquality").elements.namedItem("resolution").value)==3){
				session.maxframerate  = 30;
			} else {
				session.maxframerate = false;
			}
			
			if ((iOS) || (iPad)){
				getById("multiselect1").parentNode.style.visibility="hidden";
				getById("multiselect1").parentNode.style.height="0px";
				//getById("multiselecta1").parentNode.style.height="0px";
				//getById("multiselecta1").parentNode.style.visibility="hidden";
			}
			
			var audioSelect = document.querySelector('#audioSource');
			var videoSelect = document.querySelector('select#videoSource');
			var outputSelect = document.querySelector('select#outputSource');
			
			audioSelect.onchange = function(){
				
				var gowebcam = getById("gowebcam");
				if (gowebcam){
					gowebcam.disabled = true;
					gowebcam.style.backgroundColor = "#DDDDDD";
					gowebcam.style.fontWeight="normal";
					gowebcam.innerHTML = "Waiting for Camera to load";
				}
				log("AUDIO source CHANGED");
				activatedPreview=false;
				grabAudio();
			};
			videoSelect.onchange = function(){
				
				var gowebcam = getById("gowebcam");
				if(gowebcam){
					gowebcam.disabled = true;
					gowebcam.style.backgroundColor = "#DDDDDD";
					gowebcam.style.fontWeight="normal";
					gowebcam.innerHTML = "Waiting for Camera to load";
				}
				warnlog("video source changed");
				activatedPreview=false;
				session.quality_wb =...