Zoom SDK arbeitet in zoommtg.init (), aber nicht zoommtg.join ()
Posted: 25 Feb 2025, 07:15
Ich entwickle ein HTML- und JS -Projekt für den Beitritt zu einem Besprechungsraum, das mit der Zoomworkplace -App erstellt wurde. Im Moment erhalte ich Konsolenprotokolle für zoommtg.init (), aber ich bekomme keine Protokolle für zoommtg.join (). Es ist auch erwähnenswert, dass die Registerkarte beim Drücken der Taste "Start Session" erkennt, dass sie eine Kamera verwendet, aber kein Zoomelement angezeigt wird. Ich vermute also, dass die Funktion zoommtg.join () nicht ausgeführt wird. Für die Signatur habe ich mit diesem Link generiert: https://developers.zoom.us/docs/meeting-sdk/auth/ mit Rollentypen des Teilnehmers. Wie kann ich die zoommtg.join () funktionieren lassen? Vielen Dank im Voraus. < /P>
Quellcode: < /p>
Quellcode: < /p>
Code: Select all
Kiosk Video Call
body {
background-color: black;
color: white;
text-align: center;
}
#zmmtg-root {
display: none; /* Initially hidden until Zoom starts */
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
}
.controls {
position: relative;
z-index: 1001;
}
.btn {
background-color: #007bff;
border: none;
color: white;
padding: 15px 32px;
font-size: 16px;
cursor: pointer;
margin-top: 20px;
}
.input-field {
margin: 10px auto;
padding: 8px;
width: 80%;
max-width: 400px;
display: block;
}
Kiosk Video Call
Start Session
// Utility functions for debugging
const testTool = {
parseQuery: () => {
return {
sdkKey: document.getElementById("sdkKey").value.trim(),
meetingNumber: document.getElementById("meetingNumber").value.trim(),
passWord: document.getElementById("passWord").value.trim(),
userName: document.getElementById("userName").value.trim(),
signature: document.getElementById("signature").value.trim(),
};
},
detectOS: () => {
const userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('win') > -1) return 'Windows';
if (userAgent.indexOf('mac') > -1) return 'Mac';
if (userAgent.indexOf('linux') > -1) return 'Linux';
return 'Unknown OS';
},
getBrowserInfo: () => {
const ua = navigator.userAgent;
let tem;
let M = ua.match(/(chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
return M[1] || "Unknown";
}
};
// Main script
document.addEventListener('DOMContentLoaded', function () {
if (typeof ZoomMtg === "undefined") {
console.error("Zoom SDK failed to load.");
return;
}
console.log("Zoom SDK Loaded");
console.log(JSON.stringify(ZoomMtg.checkFeatureRequirements()));
// Initialize Zoom SDK
ZoomMtg.setZoomJSLib('https://source.zoom.us/2.15.0/lib', '/av');
ZoomMtg.preLoadWasm();
ZoomMtg.prepareWebSDK();
document.getElementById("startSession").addEventListener("click", function () {
const tmpArgs = {
sdkKey: document.getElementById("sdkKey").value.trim(),
meetingNumber: document.getElementById("meetingNumber").value.trim(),
passWord: document.getElementById("passWord").value.trim(),
userName: document.getElementById("userName").value.trim(),
signature: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJtR3RYTGJHU09DdWcyblZKY3dKV0EiLCJzZGtLZXkiOiJtR3RYTGJHU09DdWcyblZKY3dKV0EiLCJtbiI6Ijk4NTczOTIyNzkiLCJyb2xlIjoxLCJ0b2tlbkV4cCI6MTc0MDQ2MTQ0OCwiaWF0IjoxNzQwNDU3ODQ4LCJleHAiOjE3NDA0NjE0NDh9.03gMA9N6pgSrT7862rylgQGrmQZg-GE7hJ1RalYqeto',
};
if (!tmpArgs.meetingNumber || !tmpArgs.passWord || !tmpArgs.userName || !tmpArgs.sdkKey || !tmpArgs.signature) {
alert("Please fill in all required fields.");
return;
}
console.log("Meeting Config:", tmpArgs);
console.log("Generated Signature:", tmpArgs.signature);
ZoomMtg.init({
leaveUrl: window.location.href,
isSupportAV: true,
success: function () {
console.log("Success init. Attempting to join meeting...");
console.log("About to call ZoomMtg.join with params:", {
meetingNumber: tmpArgs.meetingNumber,
userName: tmpArgs.userName,
sdkKey: tmpArgs.sdkKey,
// Omitting signature and password for security
});
ZoomMtg.join({
meetingNumber: tmpArgs.meetingNumber,
userName: tmpArgs.userName,
signature: tmpArgs.signature,
sdkKey: tmpArgs.sdkKey,
passWord: tmpArgs.passWord,
success: function (res) {
console.log("Successfully joined meeting", res);
document.getElementById("zmmtg-root").style.display = "block";
document.querySelector(".controls").style.display = "none";
},
error: function (res) {
console.error("Error joining meeting:", res);
alert("Error joining meeting: " + JSON.stringify(res));
}
});
},
error: function (res) {
console.error("Zoom SDK Init Error:", res);
}
});
// Add event listeners for debugging
ZoomMtg.inMeetingServiceListener("onUserJoin", function (data) {
console.log("User joined:", data);
});
ZoomMtg.inMeetingServiceListener("onUserLeave", function (data) {
console.log("User left:", data);
});
ZoomMtg.inMeetingServiceListener("onMeetingStatus", function (data) {
console.log("Meeting status changed:", data);
});
});
});