Recentemente venho criando várias postagens sobre o peer js, e recentemente eu criei uma espécie de vídeo chamada aqui , usando aquele mesmo conceito usando esse html:
//lembrando esse html seria usado apenas para o admin.php que seria o responsável por criar a sala
<p id="notification" hidden></p>
<div class="entry-modal" id="entry-modal" style="opacity: 0%;">
<p>Create or Join Meeting</p>
<input id="room-input" class="room-input" placeholder="Enter Room ID" value="yCJzWAn12EZsjq2mPhPGfmRnMLXQAoLrCe8QwGLI">
<div style="display:inline-block;"><br>
<button onclick="createRoom()" class="create_room">Criar Sala</button><br><br>
<button onclick="joinRoom()" class="join_room">Entrar em uma Sala</button><br>
</div>
</div>
<video id="local-video" ></video>
<video id="remote" ></video>
e esse script (também só será utilizado para o admin):
const PRE = "DELTA" const SUF = "MEET" var room_id; var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; var local_stream; function createRoom(){ console.log("Creating Room") let room = document.getElementById("room-input").value; if(room == " " || room == "") { alert("Please enter room number") return; } room_id = PRE+room+SUF; let peer = new Peer(room_id) peer.on('open', (id)=>{ console.log("Peer Connected with ID: ", id) hideModal() getUserMedia({video: true, audio: true}, (stream)=>{ local_stream = stream; setLocalStream(local_stream) },(err)=>{ console.log(err) }) notify("Waiting for peer to join.") }) peer.on('call',(call)=>{ call.answer(local_stream); call.on('stream',(stream)=>{ setRemoteStream(stream) }) }) } function setLocalStream(stream){ let video = document.getElementById("local-video"); video.srcObject = stream; video.muted = true; video.play(); } function setRemoteStream(stream){ let video = document.getElementById("remote"); video.srcObject = stream; video.play(); } function hideModal(){ document.getElementById("entry-modal").hidden = true } function notify(msg){ let notification = document.getElementById("notification") notification.innerHTML = msg notification.hidden = false setTimeout(()=>{ notification.hidden = true; }, 3000) }
exemplo na pagina html(do usuário comum) ficaria mais o menos assim:
<p id="notification" hidden></p> <div class="entry-modal" id="entry-modal" style="opacity: 0%;"> <p>Create or Join Meeting</p> <input id="room-input" class="room-input" placeholder="Enter Room ID" > <div style="display:inline-block;"><br> <button onclick="joinRoom()" class="join_room">Entrar em uma Sala</button><br> </div> </div> <video id="remote" ></video>
e esse seria o script(Usuario Comum):
function joinRoom(){ }
e como você Pode ver ela está vazia, Porque eu quero criar um sistema como se fosse uma live stream onde você só iria assistir o que a outra pessoa estava fazendo , sem necessidade de precisar ligar sua câmera , Fui Claro?