Sto implementando una sala per videoconferenze in cui un utente può creare una videoconferenza e invitare altri utenti.Come faccio ad aspettare che l'utente entri prima che l'organizzatore si unisca per primo
Ora voglio assicurarmi che l'utente non possa unirsi alla conferenza finché l'organizzatore della riunione non apre la stanza.
Ho il seguente codice ma non funziona. L'organizzatore della riunione può aprire la sala, ma quando gli utenti fanno clic su "Partecipa alla conferenza" non partecipa.
// https://github.com/muaz-khan/RTCMultiConnection
var rmc = new RTCMultiConnection();
rmc.userid = "<?php echo $user->fname . ' ' . $user->lname . ' (' . $user->username . ')' ; ?>";
rmc.session = {
video: true,
audio: true,
data: true
};
var room_status = 0; //room closed
$('#open-room').click(function() {
// http://www.rtcmulticonnection.org/docs/open/
room_status = 1; //room opened
rmc.open();
rmc.streams.mute({video : true});
document.getElementById("on-off-video").style.color= 'red';
});
$('#join-room').click(function() {
if(room_status == 1) {
// http://www.rtcmulticonnection.org/docs/connect/
rmc.connect();
rmc.streams.mute({video: true});
document.getElementById("on-off-video").style.color= 'red';
}
console.log("Waiting for meeting organizer");
});
// display a notification box
window.addEventListener('beforeunload', function() {
return 'Do you want to leave?';
}, false);
// leave here
window.addEventListener('unload', function() {
rmc.leave();
}, false);
rmc.onMediaCaptured = function() {
$('#share-screen').removeAttr('disabled');
$('#open-room').attr('disabled', 'disabled');
$('#join-room').attr('disabled', 'disabled');
};
//chat
rmc.onopen = function (event) {
//alert('Text chat has been opened between you and ' + event.userid);
document.getElementById('input-text-chat').disabled = false;
room_status = 1;
};
//end of chat
$('#disconnect').click(function() {
room_status = 0; //room closed
rmc.leave();
setTimeout("location.href = '../';",2000);
});
//to know the stream type
rmc.onstream = function (e) {
if (e.type == 'local') {
// alert("the stream is local");
}
if (e.type == 'remote') {
// alert("the stream is remote");
}
if (e.isVideo) {
var uibox = document.createElement("div");
uibox.appendChild(document.createTextNode(e.userid));
uibox.className = "userid";
uibox.id = "uibox-" + e.userid.replace(/ |\(|\)/g, '');
document.getElementById('video-container').appendChild(e.mediaElement);
document.getElementById('video-container').appendChild(uibox);
}
else if (e.isAudio) {
document.getElementById('video-container').appendChild(e.mediaElement);
}
else if (e.isScreen) {
$('#cotools-panel iframe').hide();
$('#cotools-panel video').remove();
document.getElementById('cotools-panel').appendChild(e.mediaElement);
}
};
//removes the div containing the userid of the user who is leaving
rmc.onleave = function (e) {
$('#' + "uibox-" + e.userid.replace(/ |\(|\)/g, '')).remove();
};
Non sembra che room_status sia in ambito $ ('# join-room'). Considera la possibilità di renderlo globale o di trasmettere un messaggio ad esso. –
Aspetta, è stato stupido. Non stai dichiarando con var quindi è globale. Dovrò dargli più pensiero. –
Stai ricevendo sempre questo in console no? ("In attesa dell'organizzatore della riunione"); È necessario informare tutti i browser che il valore di room_status è uguale a 1 una volta aperta la stanza. (Emettere un messaggio a tutti i browser altrimenti il valore per ogni browser sarà sempre 0). – ecarrizo