[mirotalksfu] - adapt aspect ratio
هذا الالتزام موجود في:
@@ -817,8 +817,8 @@ function handleSelects() {
|
|||||||
BtnsAspectRatio.onchange = () => {
|
BtnsAspectRatio.onchange = () => {
|
||||||
setAspectRatio(BtnsAspectRatio.value);
|
setAspectRatio(BtnsAspectRatio.value);
|
||||||
};
|
};
|
||||||
BtnsAspectRatio.selectedIndex = DetectRTC.isMobileDevice ? 1 : 0;
|
|
||||||
setAspectRatio(BtnsAspectRatio.selectedIndex);
|
adaptAspectRatio(1);
|
||||||
|
|
||||||
BtnsBarPosition.onchange = () => {
|
BtnsBarPosition.onchange = () => {
|
||||||
rc.changeBtnsBarPosition(BtnsBarPosition.value);
|
rc.changeBtnsBarPosition(BtnsBarPosition.value);
|
||||||
@@ -1520,12 +1520,71 @@ async function getParticipantsTable(peers) {
|
|||||||
|
|
||||||
function refreshParticipantsCount(count) {
|
function refreshParticipantsCount(count) {
|
||||||
participantsTitle.innerHTML = `<i class="fas fa-users"></i> Participants ( ${count} )`;
|
participantsTitle.innerHTML = `<i class="fas fa-users"></i> Participants ( ${count} )`;
|
||||||
|
adaptAspectRatio(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getParticipantAvatar(peerName) {
|
function getParticipantAvatar(peerName) {
|
||||||
return cfg.msgAvatar + '?name=' + peerName + '&size=32' + '&background=random&rounded=true';
|
return cfg.msgAvatar + '?name=' + peerName + '&size=32' + '&background=random&rounded=true';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ####################################################
|
||||||
|
// HANDLE ASPECT RATIO
|
||||||
|
// ####################################################
|
||||||
|
|
||||||
|
function adaptAspectRatio(participantsCount) {
|
||||||
|
/*
|
||||||
|
['0:0', '4:3', '16:9', '1:1', '1:2'];
|
||||||
|
*/
|
||||||
|
let desktop,
|
||||||
|
mobile = 1;
|
||||||
|
// desktop aspect ratio
|
||||||
|
switch (participantsCount) {
|
||||||
|
case 1:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 7:
|
||||||
|
case 9:
|
||||||
|
desktop = 2; // (16:9)
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 10:
|
||||||
|
case 11:
|
||||||
|
desktop = 1; // (4:3)
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 8:
|
||||||
|
desktop = 3; // (1:1)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// mobile aspect ratio
|
||||||
|
switch (participantsCount) {
|
||||||
|
case 3:
|
||||||
|
case 9:
|
||||||
|
case 10:
|
||||||
|
mobile = 2; // (16:9)
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
case 7:
|
||||||
|
case 8:
|
||||||
|
case 11:
|
||||||
|
mobile = 1; // (4:3)
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 11:
|
||||||
|
mobile = 3; // (1:1)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (participantsCount > 11) {
|
||||||
|
desktop = 1; // (4:3)
|
||||||
|
mobile = 3; // (1:1)
|
||||||
|
}
|
||||||
|
BtnsAspectRatio.selectedIndex = DetectRTC.isMobileDevice ? mobile : desktop;
|
||||||
|
setAspectRatio(BtnsAspectRatio.selectedIndex);
|
||||||
|
}
|
||||||
|
|
||||||
// ####################################################
|
// ####################################################
|
||||||
// ABOUT
|
// ABOUT
|
||||||
// ####################################################
|
// ####################################################
|
||||||
|
|||||||
@@ -227,6 +227,7 @@ class RoomClient {
|
|||||||
async handleRoomInfo(room) {
|
async handleRoomInfo(room) {
|
||||||
let peers = new Map(JSON.parse(room.peers));
|
let peers = new Map(JSON.parse(room.peers));
|
||||||
participantsCount = peers.size;
|
participantsCount = peers.size;
|
||||||
|
adaptAspectRatio(participantsCount);
|
||||||
for (let peer of Array.from(peers.keys()).filter((id) => id !== this.peer_id)) {
|
for (let peer of Array.from(peers.keys()).filter((id) => id !== this.peer_id)) {
|
||||||
let peer_info = peers.get(peer).peer_info;
|
let peer_info = peers.get(peer).peer_info;
|
||||||
// console.log('07 ----> Remote Peer info', peer_info);
|
// console.log('07 ----> Remote Peer info', peer_info);
|
||||||
@@ -409,6 +410,7 @@ class RoomClient {
|
|||||||
console.log('Remove me:', data);
|
console.log('Remove me:', data);
|
||||||
this.removeVideoOff(data.peer_id);
|
this.removeVideoOff(data.peer_id);
|
||||||
participantsCount = data.peer_counts;
|
participantsCount = data.peer_counts;
|
||||||
|
adaptAspectRatio(participantsCount);
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -417,6 +419,7 @@ class RoomClient {
|
|||||||
function (data) {
|
function (data) {
|
||||||
console.log('Participants Count:', data);
|
console.log('Participants Count:', data);
|
||||||
participantsCount = data.peer_counts;
|
participantsCount = data.peer_counts;
|
||||||
|
adaptAspectRatio(participantsCount);
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ let customRatio = true;
|
|||||||
|
|
||||||
// aspect 0 1 2 3 4
|
// aspect 0 1 2 3 4
|
||||||
let ratios = ['0:0', '4:3', '16:9', '1:1', '1:2'];
|
let ratios = ['0:0', '4:3', '16:9', '1:1', '1:2'];
|
||||||
let aspect = 0;
|
let aspect = 2;
|
||||||
|
|
||||||
let ratio = getAspectRatio();
|
let ratio = getAspectRatio();
|
||||||
|
|
||||||
|
|||||||
المرجع في مشكلة جديدة
حظر مستخدم