logo
09.06.2021 23:38
1
Zdravím, mám zde tento script:

Kód:
/* Webcam */
function webcam(f,t){
	rencMoi=f+"-"+t;
	rencToi=t+"-"+f;
	var m=document.getElementById('rencCam2'),c=document.getElementById('rencCamCanvas');
	navigator.mediaDevices.getUserMedia(
		{video:{width:{ideal:160},height:{ideal:120},facingMode:'user'},audio:false}
	).then(function(mediaStream){
			rencStream=mediaStream;
			m.srcObject=mediaStream;
			m.onloadedmetadata=function(e){m.play()}
		}
	).catch(function(err){console.log(err.name+" : "+err.message)}
	);
	m.addEventListener('canplay',function(e){
		m.style.visibility="visible";
		m.style.width="160px";
		m.style.height="120px";
		c.setAttribute('width',300);
		c.setAttribute('height',225);
		f_tchat_interval('cam1',1,[]);
	});
	stream_on();
}
function f_camOff(){
	var a=document.getElementById('rencCam'),m=document.getElementById('rencCam2'),t;
	f_tchat_interval('cam1',0,[]);
	f_tchat_interval('cam2',0,[]);
	if(rencStream){
		t=rencStream.getTracks();
		t.forEach(function(r){r.stop();});
	}
	rencStream=false;
	a.innerHTML="";
	a.style.visibility="hidden";
	m.style.bottom="10px";
	m.style.visibility="hidden";
}
function saveCam(){
	if(rencSave==1&&rencSetiCam1!==false){
		rencSave=0;
		var c=document.getElementById('rencCamCanvas'),i,m=document.getElementById('rencCam2'),t=c.getContext("2d"),x=new XMLHttpRequest();
		t.drawImage(m,0,0,300,225);
		i=c.toDataURL('image/jpeg',.5);
		x.open("POST",rencobjet.ajaxchat,true);
		x.setRequestHeader('Content-Type',"application/x-www-form-urlencoded; charset=UTF-8");
		x.setRequestHeader("X-Requested-With","XMLHttpRequest");
		x.onreadystatechange=function(){if(x.readyState==4)rencSave=1;};
		x.send("tchat=cam&id="+rencMoi+"&image="+i+"&d="+rencBasedir+"&c="+rencTokc);
	}
}
function stream_cam(){
	if(rencSetiCam2===false)return;
	document.getElementById('rencCamImg').src=rencBaseurl+'/tchat/cam'+rencToi+'.jpg?'+new Date().getTime();
}
function stream_on(){
	var a=document.getElementById('rencCam'),b=document.createElement("img"),m=document.getElementById('rencCam2');
	b.id="rencCamImg";
	b.src="";
	a.appendChild(b);
	a.style.visibility="visible";
	m.style.bottom="245px";
	f_tchat_interval('cam2',1,[]);
}
function f_dynamicWidth(f,s){
	if(typeof f==='undefined')f=200;
	if(typeof s==='undefined')s=168;
	if(window.matchMedia("(max-width:600px)").matches)f=s;
	var a=jQuery(".rencMyHome").width(),c=Math.max(Math.floor(a/(f+8)),1);
	jQuery(".rencMiniPortrait").width(Math.floor(a/c)-16);
}
//
if(document.getElementById("infoChange")!==null)window.setTimeout(function(){jQuery("#infoChange").remove()},((typeof rencInfochange!=='undefined')?rencInfochange:5000));
jQuery(document).ready(function(){
	if(typeof rencobjet!=='undefined')f_tchat_interval('veil',1,[]);
});
A výsledek má zobrazovat zde:
Kód:
	<canvas id="rencCamCanvas" style="display:none;"></canvas>
    <video id="rencCam2" class="rencCam2" controls></video>
	<div id="rencCam" class="rencCam"></div>
Jenže druhá kamera nezobrazuje jako
Kód:
<video>
ale formou obrázku, která vlastně jede na základě načítání dle časů (timer). Vím že stačí přejmenovat
Kód:
<div>
za
Kód:
<video>
jenže v tom javascriptu výše nevím jak udělat, aby to fungovalo oba stejně ve formátu
Kód:
<video>
. první video #rencCam2 jede jak má, druhé však nevím jak to tam nastavit v tom scriptu, aby jela též v tom stejném formátu místo obrázku...
10.06.2021 13:47
2
a co chceš dělat? Teď jeden element je stream videa a druhý jsou jen fotky z něho. Mrkni na funkci webcam, tam je inicializace streamu, tam to můžeš upravit, nelze jen změnit tag, musíš ho také plnit daty.