कई सम्मेलनों का निर्माण voxeet / dolby.io
मैं dolby.io का उपयोग कर रहा हूं
अब तक मैंने ज्वाइन कॉन्फ्रेंस, लीव कॉन्फ्रेंस, स्टार्ट एंड स्टॉप विडियो, रिकॉर्डिंग शुरू और स्टॉप, स्क्रीन शेयरिंग को लागू किया है। मैं जिस मुद्दे का सामना कर रहा हूं वह कई सम्मेलन के बारे में है। मैं अद्वितीय कॉन्फ्रेंस आईडी के साथ कई सम्मेलनों को लागू करना चाहता हूं ताकि प्रासंगिक सम्मेलन के लिए निर्दिष्ट प्रत्येक उपयोगकर्ता अपने आप से जुड़ जाए। मुझे इसके आधिकारिक दस्तावेज से कोई मतलब नहीं है।
यहाँ मेरा कोड है
const initUI = () => {
const nameMessage = document.getElementById('name-message');
const joinButton = document.getElementById('join-btn');
const conferenceAliasInput = document.getElementById('alias-input');
const leaveButton = document.getElementById('leave-btn');
const startVideoBtn = document.getElementById('start-video-btn');
const stopVideoBtn = document.getElementById('stop-video-btn');
const startScreenShareBtn = document.getElementById('start-screenshare-btn');
const stopScreenShareBtn = document.getElementById('stop-screenshare-btn');
const startRecordingBtn = document.getElementById('start-recording-btn');
const stopRecordingBtn = document.getElementById('stop-recording-btn');
//const mute_unmute = document.getElementById('mute');
//oxeetSDK.conference.mute(VoxeetSDK.session.participant, VoxeetSDK.session.participant.isMuted);
//let isMuted = VoxeetSDK.conference.toggleMute(VoxeetSDK.session.participant);
nameMessage.innerHTML = `${randomName}`; joinButton.disabled = false; joinButton.onclick = () => { let conferenceAlias = conferenceAliasInput.value; /* 1. Create a conference room with an alias 2. Join the conference with its id */ VoxeetSDK.conference.create({ alias: conferenceAlias }) .then((conference) => VoxeetSDK.conference.join(conference, {})) .then(() => { joinButton.disabled = true; leaveButton.disabled = false; startVideoBtn.disabled = false; startScreenShareBtn.disabled = false; startRecordingBtn.disabled = false; }) .catch((e) => console.log('Something wrong happened : ' + e)) }; leaveButton.onclick = () => { VoxeetSDK.conference.leave() .then(() => { joinButton.disabled = false; leaveButton.disabled = true; startScreenShareBtn.disabled = true; stopScreenShareBtn.disabled = true; }) .catch((err) => { console.log(err); }); }; startVideoBtn.onclick = () => { VoxeetSDK.conference.startVideo(VoxeetSDK.session.participant) .then(() => { startVideoBtn.disabled = true; stopVideoBtn.disabled = false; }); }; stopVideoBtn.onclick = () => { VoxeetSDK.conference.stopVideo(VoxeetSDK.session.participant) .then(() => { stopVideoBtn.disabled = true; startVideoBtn.disabled = false; }); }; startScreenShareBtn.onclick = () => { VoxeetSDK.conference.startScreenShare() .then(() => { startScreenShareBtn.disabled = true; stopScreenShareBtn.disabled = false; }) .catch((e) => console.log(e)) }; stopScreenShareBtn.onclick = () => { VoxeetSDK.conference.stopScreenShare() .then(() => { startScreenShareBtn.disabled = false; stopScreenShareBtn.disabled = true; }) .catch((e) => console.log(e)) }; startRecordingBtn.onclick = () => { let recordStatus = document.getElementById('record-status'); VoxeetSDK.recording.start() .then(() => { recordStatus.innerText = 'Recording...'; startRecordingBtn.disabled = true; stopRecordingBtn.disabled = false; }) .catch((err) => { console.log(err); }) }; stopRecordingBtn.onclick = () => { let recordStatus = document.getElementById('record-status'); VoxeetSDK.recording.stop() .then(() => { recordStatus.innerText = ''; startRecordingBtn.disabled = false; stopRecordingBtn.disabled = true; }) .catch((err) => { console.log(err); }) }; }; const addVideoNode = (participant, stream) => { const videoContainer = document.getElementById('video-container'); let videoNode = document.getElementById('video-' + participant.id); if(!videoNode) { videoNode = document.createElement('video'); videoNode.setAttribute('id', 'video-' + participant.id); videoNode.setAttribute('controls', true); //VoxeetSDK.conference.mute(VoxeetSDK.session.participant, VoxeetSDK.session.participant.isMuted); //let isMuted = VoxeetSDK.conference.toggleMute(VoxeetSDK.session.participant); //console.log(isMuted); //videoNode.setAttribute('height', 240); //videoNode.setAttribute('width', 720); videoContainer.appendChild(videoNode); videoNode.autoplay = 'autoplay'; videoNode.muted = true; } navigator.attachMediaStream(videoNode, stream); }; const removeVideoNode = (participant) => { let videoNode = document.getElementById('video-' + participant.id); if (videoNode) { videoNode.parentNode.removeChild(videoNode); } }; const addParticipantNode = (participant) => { //const members_count++; const participantsList = document.getElementById('participants-list'); // if the participant is the current session user, don't add himself to the list if (participant.id === VoxeetSDK.session.participant.id) return; // let participantNode = document.createElement('li'); // participantNode.setAttribute('id', 'participant-' + participant.id); // participantNode.innerText = `${participant.info.name}`;
//alert(VoxeetSDK.session.participant);
//document.getElementById('members_count').innerText=participant.id;
let participantNode = document.createElement('div');
participantNode.setAttribute('class', 'tabcnt-item');
participantNode.setAttribute('id', 'participant-' + participant.id);
//document.getElementById('members_count').innerText = document.getElementById('members_count').innerText + 1;
//document.getElementById('members_count').innerText = members_count;
participantNode.innerText = `${participant.info.name}`; const send_html = "<div class='tabcnt-item'><div class='row align-items-center'><div class='col-md-8'><div class='media'><img src='images/pp.png' alt=''><div class='media-body'><h3>'"+`${participant.info.name}`+"'</h3><p>[email protected]</p></div></div></div><div class='col-md-4'><ul><li><a href='#'><i class='fas fa-video'></i></a></li><li><a href='#'><i class='fas fa-microphone'></i></a></li></ul></div></div></div>";
participantNode.innerHTML = send_html;
participantsList.appendChild(participantNode);
document.getElementById('members_count').innerText= $('.tab-cnt').length; }; const removeParticipantNode = (participant) => { let participantNode = document.getElementById('participant-' + participant.id); if (participantNode) { participantNode.parentNode.removeChild(participantNode); document.getElementById('members_count').innerText= $('.tab-cnt').length;
}
};
const addScreenShareNode = (stream) => {
const screenShareContainer = document.getElementById('screenshare-container');
let screenShareNode = document.getElementById('screenshare');
if (screenShareNode) return alert('There is already a participant sharing his screen !');
screenShareNode = document.createElement('video');
screenShareNode.setAttribute('id', 'screenshare');
screenShareNode.autoplay = 'autoplay';
navigator.attachMediaStream(screenShareNode, stream);
screenShareContainer.appendChild(screenShareNode);
}
const removeScreenShareNode = () => {
let screenShareNode = document.getElementById('screenshare');
if (screenShareNode) {
screenShareNode.parentNode.removeChild(screenShareNode);
}
}
मैं थक गया हूं और गुगली से थक गया हूं। यह एक बड़ी मदद होगी अगर कुछ मार्गदर्शन कर सकते हैं या अधिक विस्तृत प्रलेखन की दिशा प्रदान कर सकते हैं। मैंने डॉल्बी डॉक्स के प्रत्येक बिट को पढ़ा है। पढ़ने के लिए धन्यवाद
जवाब
जब आप कॉल करते हैं तो create()
एक नई कॉन्फ्रेंस आईडी बनती है जो आपके खाते के लिए एक गाइड विशेष है। इसे खोजने के लिए आप get_id () पर कॉल कर सकते हैं। जब आप किसी भी समय सक्रिय कई सम्मेलन हो सकते हैं, तो आप पठनीयता में मदद करने के लिए एक उपनाम भी निर्दिष्ट कर सकते हैं ।
यदि आप कई सम्मेलन करना चाहते हैं, तो आपको create()
कई बार कॉल करना चाहिए । यही है, उम्मीद है कि विशिष्ट ऐप केवल एक ही सम्मेलन को आरंभ करता है, लेकिन कई चल रहे उदाहरण हैं जिनमें प्रत्येक का अपना सम्मेलन है और / या किसी अन्य को मौजूदा सम्मेलन में आमंत्रित करने के लिए है। वेबपे के लिए, यह एक अलग तैनात मोबाइल एप्लिकेशन के बजाय एक अलग उपयोगकर्ता सत्र हो सकता है। आप अपनी सेवाओं में प्रत्येक उपयोगकर्ता के लिए क्या आईडी जनरेट कर रहे हैं, इसके लिए कुछ बुक करना चाह सकते हैं।
आप उन सभी सम्मेलनों की तलाश में हो सकते हैं जो किसी भी समय आपके खाते में सक्रिय हों या आपके तैनात किए गए ऐप की जाँच या निगरानी कर रहे हों। आप उस सूची को प्राप्त करने के लिए मॉनिटर एपीआई getConferences का उपयोग कर सकते हैं ।
यदि आपके पास अतिरिक्त प्रश्न हैं, तो संभवतः अधिक व्यक्तिगत उत्तरों और मार्गदर्शन के लिए Dolby.io सहायता का उपयोग करना सबसे अच्छा है ।