[mirotalksfu] - implement direct join
هذا الالتزام موجود في:
@@ -29,13 +29,12 @@ let participantsCount = 0;
|
||||
let rc = null;
|
||||
let producer = null;
|
||||
|
||||
let peer_name = 'peer_' + getRandomNumber(5);
|
||||
let room_id = getRoomId();
|
||||
let peer_name = getPeerName();
|
||||
let peer_geo = null;
|
||||
let peer_info = null;
|
||||
|
||||
let room_id = location.pathname.substring(6);
|
||||
let isEnumerateDevices = false;
|
||||
|
||||
let isAudioAllowed = false;
|
||||
let isVideoAllowed = false;
|
||||
let isScreenAllowed = false;
|
||||
@@ -59,16 +58,6 @@ let isButtonsVisible = false;
|
||||
|
||||
const socket = io();
|
||||
|
||||
function getRandomNumber(length) {
|
||||
let result = '';
|
||||
let characters = '0123456789';
|
||||
let charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function initClient() {
|
||||
if (!DetectRTC.isMobileDevice) {
|
||||
setTippy('shareButton', 'Share the room', 'right');
|
||||
@@ -121,6 +110,30 @@ function setTippy(elem, content, placement) {
|
||||
});
|
||||
}
|
||||
|
||||
// ####################################################
|
||||
// GET ROOM ID
|
||||
// ####################################################
|
||||
|
||||
function getRoomId() {
|
||||
let qs = new URLSearchParams(window.location.search);
|
||||
let queryRoomId = qs.get('room');
|
||||
let roomId = queryRoomId ? queryRoomId : location.pathname.substring(6);
|
||||
if (roomId == '') {
|
||||
roomId = makeId(12);
|
||||
}
|
||||
return roomId;
|
||||
}
|
||||
|
||||
function makeId(length) {
|
||||
let result = '';
|
||||
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
let charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// ####################################################
|
||||
// ENUMERATE DEVICES
|
||||
// ####################################################
|
||||
@@ -220,6 +233,11 @@ function appenChild(device, el) {
|
||||
// SOME PEER INFO
|
||||
// ####################################################
|
||||
|
||||
function getPeerName() {
|
||||
let qs = new URLSearchParams(window.location.search);
|
||||
return qs.get('name');
|
||||
}
|
||||
|
||||
function getPeerInfo() {
|
||||
peer_info = {
|
||||
detect_rtc_version: DetectRTC.version,
|
||||
@@ -254,6 +272,14 @@ function getPeerGeoLocation() {
|
||||
function whoAreYou() {
|
||||
console.log('04 ----> Who are you');
|
||||
|
||||
if (peer_name) {
|
||||
checkMedia();
|
||||
getPeerInfo();
|
||||
shareRoom();
|
||||
joinRoom(peer_name, room_id);
|
||||
return;
|
||||
}
|
||||
|
||||
Swal.fire({
|
||||
allowOutsideClick: false,
|
||||
allowEscapeKey: false,
|
||||
@@ -307,6 +333,16 @@ function handleVideo(e) {
|
||||
setColor(startVideoButton, isVideoAllowed ? 'white' : 'red');
|
||||
}
|
||||
|
||||
function checkMedia() {
|
||||
let qs = new URLSearchParams(window.location.search);
|
||||
let audio = qs.get('audio').toLowerCase();
|
||||
let video = qs.get('video').toLowerCase();
|
||||
let queryPeerAudio = audio === '1' || audio === 'true';
|
||||
let queryPeerVideo = video === '1' || video === 'true';
|
||||
if (queryPeerAudio != null) isAudioAllowed = queryPeerAudio;
|
||||
if (queryPeerVideo != null) isVideoAllowed = queryPeerVideo;
|
||||
}
|
||||
|
||||
// ####################################################
|
||||
// SHARE ROOM
|
||||
// ####################################################
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم