bug fix for capped mobile bandwidth + &optimize=0 failing

This commit is contained in:
steveseguin 2022-12-10 17:31:26 -05:00
parent 87dc9e98a7
commit 60822c80a8
22 changed files with 191 additions and 108 deletions

View File

@ -57,7 +57,7 @@
<meta property="twitter:image" content="./media/vdoNinja_logo_full.png" /> <meta property="twitter:image" content="./media/vdoNinja_logo_full.png" />
<meta name="msapplication-TileColor" content="#da532c" /> <meta name="msapplication-TileColor" content="#da532c" />
<meta name="theme-color" content="#ffffff" /> <meta name="theme-color" content="#ffffff" />
<link rel="stylesheet" href="./main.css?ver=238" /> <link rel="stylesheet" href="./main.css?ver=239" />
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/adapter.js"></script> <script type="text/javascript" crossorigin="anonymous" src="./thirdparty/adapter.js"></script>
<style id="lightbox-animations" type="text/css"></style> <style id="lightbox-animations" type="text/css"></style>
<!-- <link rel="manifest" href="manifest.json" /> --> <!-- <link rel="manifest" href="manifest.json" /> -->
@ -83,7 +83,7 @@
</span> </span>
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=45"></script> <script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=45"></script>
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script> <script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script>
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=552"></script> <script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=554"></script>
<input id="zoomSlider" type="range" style="display: none;" /> <input id="zoomSlider" type="range" style="display: none;" />
<span id="electronDragZone" style="pointer-events: none; z-index:-10; position:absolute;top:0;left:0;width:100%;height:2%;-webkit-app-region: drag;min-height:20px;"></span> <span id="electronDragZone" style="pointer-events: none; z-index:-10; position:absolute;top:0;left:0;width:100%;height:2%;-webkit-app-region: drag;min-height:20px;"></span>
<div id="header"> <div id="header">
@ -386,7 +386,7 @@
</span> </span>
<div id="consentWarning" class="startupWarning hidden"> <div id="consentWarning" class="startupWarning hidden">
<i class="las la-exclamation-circle"></i> <i class="las la-exclamation-circle"></i>
<p><span data-translate="privacy-disabled">Privacy warning: The director will be able to remotely change your camera and microphone.</span></p> <p><span data-translate="privacy-disabled">Privacy warning: The director will be able to remotely change your camera, microphone, and URL.</span></p>
</div> </div>
<div id="guestTips" style="display:none"> <div id="guestTips" style="display:none">
<p data-translate="for-the-best-possible-experience-make-sure">For the best possible experience, make sure</p> <p data-translate="for-the-best-possible-experience-make-sure">For the best possible experience, make sure</p>
@ -575,7 +575,7 @@
</center> </center>
<div id="consentWarning2" class="startupWarning hidden"> <div id="consentWarning2" class="startupWarning hidden">
<i class="las la-exclamation-circle"></i> <i class="las la-exclamation-circle"></i>
<p><span data-translate="privacy-disabled">Privacy warning: The director will be able to remotely change which camera and microphone is being used while this page is open, if you continue.</span></p> <p><span data-translate="privacy-disabled">Privacy warning: The director will be able to remotely change your camera, microphone, and URL while this page is open, if you continue.</span></p>
</div> </div>
<div id="audioScreenShare1"> <div id="audioScreenShare1">
<i class="las la-microphone-alt"></i> <i class="las la-microphone-alt"></i>
@ -1831,7 +1831,8 @@
<button class='hidden drawActive' onclick="drawOnScreenObject.color(this);" data-color='black' style="background-color:black; margin: 0 0 0 4px; border-radius: 5px; padding: 3px 3px;">✏️</button> <button class='hidden drawActive' onclick="drawOnScreenObject.color(this);" data-color='black' style="background-color:black; margin: 0 0 0 4px; border-radius: 5px; padding: 3px 3px;">✏️</button>
<button class='hidden drawActive' onclick="drawOnScreenObject.color(this);" data-color='white' style="background-color:white; margin: 0 0 0 4px; border-radius: 5px; padding: 3px 3px;">🎨</button> <button class='hidden drawActive' onclick="drawOnScreenObject.color(this);" data-color='white' style="background-color:white; margin: 0 0 0 4px; border-radius: 5px; padding: 3px 3px;">🎨</button>
<br /><br /> <br /><br />
<button onclick="cycleStyleOptions();" id='toggleWaveformButton' title="Audio-only sources can be stylized in different ways" style="margin: 0 0 0 4px; border-radius: 5px; padding: 3px 3px;">Cycle between several audio-visualizations styles</button> <button class="generalButton" onclick="cycleStyleOptions();" id='toggleWaveformButton' title="Audio-only sources can be stylized in different ways">Cycle between several audio-visualizations styles</button>
<button class="generalButton" onclick="clearStorage();" title="Clear site's local storage and settings">Clear site's local browser storage and saved settings</button>
</span> </span>
</div> </div>
@ -2256,7 +2257,7 @@
var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js. var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
session.version = "22.9"; // nov 18th session.version = "22.10"; // nov 18th
session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy
@ -2328,11 +2329,11 @@
// session.defaultBackgroundImages = ["./media/bg_sample1.webp", "./media/bg_sample2.webp"]; // for &effects=5 (virtual backgrounds) // session.defaultBackgroundImages = ["./media/bg_sample1.webp", "./media/bg_sample2.webp"]; // for &effects=5 (virtual backgrounds)
// session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements. // session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements.
</script> </script>
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=587"></script> <script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=595"></script>
<!-- <!--
// If you wish to change branding, blank offers a good clean start. // If you wish to change branding, blank offers a good clean start.
<script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script> <script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script>
--> -->
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=504"></script> <script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=510"></script>
</body> </body>
</html> </html>

88
lib.js
View File

@ -57,7 +57,7 @@ var miscTranslations = {
"transfer" : "transfer", "transfer" : "transfer",
"armed" : "armed", "armed" : "armed",
"transfer-guest-to-room" : "Transfer guests to room:\n\n(Please note: rooms must share the same password)", "transfer-guest-to-room" : "Transfer guests to room:\n\n(Please note: rooms must share the same password)",
"transfer-guest-to-url" :"Transfer guests to new website URL.\n\n(Guests will be prompted to accept)", "transfer-guest-to-url" :"Transfer guests to new website URL.\n\nGuests will be prompted to accept unless they are using &consent",
"change-url" : "change URL", "change-url" : "change URL",
"mute-in-scene" : "mute in scene", "mute-in-scene" : "mute in scene",
"unmute-guest": "un-mute guest", "unmute-guest": "un-mute guest",
@ -1780,6 +1780,7 @@ function applySceneState(){ // guest side; tally light, etc.
getById("obsState").classList.remove("recording"); getById("obsState").classList.remove("recording");
getById("obsState").classList.remove("ondeck"); getById("obsState").classList.remove("ondeck");
getById("obsState").innerHTML = "INACTIVE"; getById("obsState").innerHTML = "INACTIVE";
getById("obsState").classList.add("hidden"); // I don't think most people care to see inactive.
} }
if (visibility){ // BASIC TALLY LIGHT (on deck disabled) if (visibility){ // BASIC TALLY LIGHT (on deck disabled)
@ -2124,6 +2125,13 @@ function removeStorage(cname){
localStorage.removeItem(cname); localStorage.removeItem(cname);
} }
function clearStorage(){
localStorage.clear();
if (!session.cleanOutput){
warnUser("The local storage and saved settings have been cleared", 1000);
}
}
function setStorage(cname, cvalue, hours=9999){ // not actually a cookie function setStorage(cname, cvalue, hours=9999){ // not actually a cookie
var now = new Date(); var now = new Date();
var item = { var item = {
@ -2303,6 +2311,11 @@ function setupIncomingScreenTracking(v, UUID){ // SCREEN element.
} }
v.onpause = (event) => { // prevent things from pausing; human or other v.onpause = (event) => { // prevent things from pausing; human or other
if (v.dataset.UUID && session.rpcs[v.dataset.UUID] && (session.rpcs[v.dataset.UUID].manualBandwidth === 0)){
return true;
}
if (!((event.ctrlKey) || (event.metaKey) )){ if (!((event.ctrlKey) || (event.metaKey) )){
warnlog("Video paused; force it to play again"); warnlog("Video paused; force it to play again");
//return; //return;
@ -2639,6 +2652,10 @@ function setupIncomingVideoTracking(v, UUID){ // video element.
v.onpause = (event) => { // prevent things from pausing; human or other v.onpause = (event) => { // prevent things from pausing; human or other
if (v.dataset.UUID && session.rpcs[v.dataset.UUID] && (session.rpcs[v.dataset.UUID].manualBandwidth === 0)){
return true;
}
if (!CtrlPressed){ if (!CtrlPressed){
warnlog("Video paused; force it to play again"); warnlog("Video paused; force it to play again");
//return; //return;
@ -3885,9 +3902,11 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
} }
} }
var sssid = false; var sssid = false;
var sscount = 0; var sscount = 0;
var mpl = session.slots || mediaPool.length;
var playarea = getById("gridlayout"); var playarea = getById("gridlayout");
var skip = false; var skip = false;
@ -3899,6 +3918,22 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
mediaPool.sort(compare_vids); mediaPool.sort(compare_vids);
} }
if (session.fakeFeeds && session.fakeFeeds.length && (mediaPool.length < session.fakeFeeds.length)){
for (let i=0;i<session.fakeFeeds.length;i++){
if (mediaPool.length < session.fakeFeeds.length){
mediaPool.push(session.fakeFeeds[i]);
} else {
try{
session.fakeFeeds[i].remove();
} catch(e){errorlog(e)}
}
}
}
var mpl = session.slots || mediaPool.length;
if (mpl>1){ if (mpl>1){
var BB = 0; var BB = 0;
var rw = 1; var rw = 1;
@ -4136,6 +4171,7 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
togglePreview.style.top = "calc("+hi+"px + 2vh)"; togglePreview.style.top = "calc("+hi+"px + 2vh)";
togglePreview.style.maxHeight = parseInt(getById("gridlayout").offsetHeight)+"px"; togglePreview.style.maxHeight = parseInt(getById("gridlayout").offsetHeight)+"px";
} catch(e){ } catch(e){
errorlog(e);
container.style.top = hi+"px"; container.style.top = hi+"px";
togglePreview.style.top = hi+"px"; togglePreview.style.top = hi+"px";
} }
@ -4960,6 +4996,7 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
} }
} }
} catch(e) { } catch(e) {
errorlog(e);
var bigPlayButton = document.getElementById("bigPlayButton"); var bigPlayButton = document.getElementById("bigPlayButton");
if (bigPlayButton){ if (bigPlayButton){
bigPlayButton.parentNode.removeChild(bigPlayButton); bigPlayButton.parentNode.removeChild(bigPlayButton);
@ -13831,7 +13868,7 @@ function joinRoom(roomname) {
} }
} }
function createRoom(roomname = false) { async function createRoom(roomname = false) {
if (roomname == false) { if (roomname == false) {
roomname = getById("videoname1").value; roomname = getById("videoname1").value;
@ -13886,12 +13923,12 @@ function createRoom(roomname = false) {
if ((session.defaultPassword === false) && (session.password)) { if ((session.defaultPassword === false) && (session.password)) {
passAdd2 = "&password=" + session.password; passAdd2 = "&password=" + session.password;
return generateHash(session.password + session.salt, 4).then(function(hash) { return generateHash(session.password + session.salt, 4).then(async function(hash) {
passAdd = "&hash=" + hash; passAdd = "&hash=" + hash;
createRoomCallback(passAdd, passAdd2); await createRoomCallback(passAdd, passAdd2);
}).catch(errorlog); }).catch(errorlog);
} else { } else {
createRoomCallback(passAdd, passAdd2); await createRoomCallback(passAdd, passAdd2);
} }
pokeIframeAPI("create-room", roomname); pokeIframeAPI("create-room", roomname);
@ -13979,7 +14016,7 @@ async function toggleCoDirector(ele){
getById("codirectorSettings").style.display = "block"; getById("codirectorSettings").style.display = "block";
} }
function createRoomCallback(passAdd, passAdd2) { async function createRoomCallback(passAdd, passAdd2) {
if (!session.switchMode){ if (!session.switchMode){
getById("directorlayout").classList.remove("hidden"); getById("directorlayout").classList.remove("hidden");
@ -14136,7 +14173,6 @@ function createRoomCallback(passAdd, passAdd2) {
}, 200);}; }, 200);};
getById("reshare").parentNode.removeChild(getById("reshare")); getById("reshare").parentNode.removeChild(getById("reshare"));
//getById("mutespeakerbutton").style.display = null; //getById("mutespeakerbutton").style.display = null;
if (session.speakerMuted_default===false){ if (session.speakerMuted_default===false){
//session.speakerMuted = false; // the director will start with audio playback muted. //session.speakerMuted = false; // the director will start with audio playback muted.
@ -14252,6 +14288,14 @@ function createRoomCallback(passAdd, passAdd2) {
joinRoom(session.roomid); joinRoom(session.roomid);
try {
if (!gotDevices2AlreadyRan){
await enumerateDevices().then(gotDevices2); // this is needed for iOS; was previous set to timeout at 100ms, but would be useful everywhere I think
}
}catch(e){
errorlog(e);
}
if (session.autostart){ if (session.autostart){
setTimeout(function(){press2talk(true);},400); setTimeout(function(){press2talk(true);},400);
} else { } else {
@ -16291,6 +16335,7 @@ function gotDevices2(deviceInfos) {
option.selected = "true"; option.selected = "true";
} else if (!session.sink && SelectedAudioOutputDevices && (SelectedAudioOutputDevices == option.value)){ } else if (!session.sink && SelectedAudioOutputDevices && (SelectedAudioOutputDevices == option.value)){
option.selected = "true"; option.selected = "true";
session.sink = option.value; // added 8-dec-22, as the director's saved mic wasn't applying otherwise.
} }
option.text = deviceInfo.label || `Speaker ${audioOutputSelect.length + 1}`; option.text = deviceInfo.label || `Speaker ${audioOutputSelect.length + 1}`;
audioOutputSelect.appendChild(option); audioOutputSelect.appendChild(option);
@ -20068,6 +20113,7 @@ async function press2talk(clean = false) {
session.videoElement.title = "This is the preview of the Director's audio and video output."; session.videoElement.title = "This is the preview of the Director's audio and video output.";
session.videoElement.onpause = (event) => { // prevent things from pausing; human or other session.videoElement.onpause = (event) => { // prevent things from pausing; human or other
if (!((event.ctrlKey) || (event.metaKey) )){ if (!((event.ctrlKey) || (event.metaKey) )){
log("Video paused; auto playing"); log("Video paused; auto playing");
event.currentTarget.play().then(_ => { event.currentTarget.play().then(_ => {
@ -26188,12 +26234,17 @@ function updateLink(arg, input, solo=false) {
function changeURL(changeURL){ function changeURL(changeURL){
window.focus(); window.focus();
confirmAlt(miscTranslations["director-redirect-1"]+changeURL+miscTranslations["director-redirect-2"]).then(res=>{ if (session.consent){
if (res){ hangup();
hangup(); window.location.href = changeURL;
window.location.href = changeURL; } else {
}; confirmAlt(miscTranslations["director-redirect-1"]+changeURL+miscTranslations["director-redirect-2"]).then(res=>{
}); if (res){
hangup();
window.location.href = changeURL;
};
});
}
} }
function updateLinkInverse(arg, input) { function updateLinkInverse(arg, input) {
@ -26513,6 +26564,11 @@ function unPauseVideo(videoEle, update=true){
else if (!("prePausedBandwidth" in session.rpcs[videoEle.dataset.UUID])){return;} // not paused; useless to have, but might as well else if (!("prePausedBandwidth" in session.rpcs[videoEle.dataset.UUID])){return;} // not paused; useless to have, but might as well
session.rpcs[videoEle.dataset.UUID].manualBandwidth = false; session.rpcs[videoEle.dataset.UUID].manualBandwidth = false;
//session.rpcs[videoEle.dataset.UUID].manualAudioBandwidth = false; //session.rpcs[videoEle.dataset.UUID].manualAudioBandwidth = false;
if (session.rpcs[videoEle.dataset.UUID].videoElement){
session.rpcs[videoEle.dataset.UUID].videoElement.play();
}
delete(session.rpcs[videoEle.dataset.UUID].prePausedBandwidth); delete(session.rpcs[videoEle.dataset.UUID].prePausedBandwidth);
session.requestRateLimit(false, videoEle.dataset.UUID, false); // passing a bitrate of false forces the saved existing bitrate to be requested. session.requestRateLimit(false, videoEle.dataset.UUID, false); // passing a bitrate of false forces the saved existing bitrate to be requested.
videoEle.classList.remove("paused"); videoEle.classList.remove("paused");
@ -26528,6 +26584,10 @@ function pauseVideo(videoEle, update=true){
else if (!(videoEle.dataset.UUID in session.rpcs)){return;} else if (!(videoEle.dataset.UUID in session.rpcs)){return;}
session.rpcs[videoEle.dataset.UUID].prePausedBandwidth = session.rpcs[videoEle.dataset.UUID].manualBandwidth; // useless, but whatever session.rpcs[videoEle.dataset.UUID].prePausedBandwidth = session.rpcs[videoEle.dataset.UUID].manualBandwidth; // useless, but whatever
session.rpcs[videoEle.dataset.UUID].manualBandwidth = 0; session.rpcs[videoEle.dataset.UUID].manualBandwidth = 0;
if (session.rpcs[videoEle.dataset.UUID].videoElement){
session.rpcs[videoEle.dataset.UUID].videoElement.pause();
}
//session.rpcs[videoEle.dataset.UUID].manualAudioBandwidth = 0; //session.rpcs[videoEle.dataset.UUID].manualAudioBandwidth = 0;
session.requestRateLimit(false, videoEle.dataset.UUID, true); // passing a bitrate of false forces the saved existing bitrate to be requested. session.requestRateLimit(false, videoEle.dataset.UUID, true); // passing a bitrate of false forces the saved existing bitrate to be requested.
videoEle.classList.add("paused"); videoEle.classList.add("paused");

View File

@ -1824,6 +1824,11 @@ h2 {
label { label {
color: #000; color: #000;
} }
.generalButton{
border-radius: 3px;
padding: 5px;
margin: 0 0 10px 0;
}
.inner:before, .inner:before,
.inner:after { .inner:after {

87
main.js
View File

@ -1012,7 +1012,6 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
session.autostart = true; session.autostart = true;
} }
if (urlParams.has('datamode') || urlParams.has('dataonly')) { // this disables all media in/out. if (urlParams.has('datamode') || urlParams.has('dataonly')) { // this disables all media in/out.
session.dataMode = true; session.dataMode = true;
} }
@ -1683,6 +1682,24 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
} }
} }
if (urlParams.has('fakeguests') || urlParams.has('fakefeeds')) {
var total = parseInt(urlParams.get('fakeguests')) || parseInt(urlParams.get('fakefeeds')) || 4;
session.fakeFeeds = [];
log("Creating "+total+" fake feeds");
for (var i=0;i<total;i++){
let fakeElement = document.createElement("video");
fakeElement.autoplay = true;
fakeElement.loop = true;
fakeElement.muted = true;
fakeElement.src = "./media/fakesteve.webm";
fakeElement.id = parseInt(Math.random() * 10000000000);
session.fakeFeeds.push(fakeElement);
}
if (session.view!==false){
setTimeout(function(){updateMixer();},1000);
}
}
if (urlParams.has('directoronly') || urlParams.has('directorsonly') || urlParams.has('do')){ if (urlParams.has('directoronly') || urlParams.has('directorsonly') || urlParams.has('do')){
session.viewDirectorOnly = true; session.viewDirectorOnly = true;
} }
@ -2560,6 +2577,10 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
session.mixMinus = true; session.mixMinus = true;
} }
if (urlParams.has('clearstorage') || urlParams.has('clear')){
clearStorage();
}
if (urlParams.has('videobitrate') || urlParams.has('bitrate') || urlParams.has('vb')) { if (urlParams.has('videobitrate') || urlParams.has('bitrate') || urlParams.has('vb')) {
session.bitrate = urlParams.get('videobitrate') || urlParams.get('bitrate') || urlParams.get('vb'); session.bitrate = urlParams.get('videobitrate') || urlParams.get('bitrate') || urlParams.get('vb');
if (session.bitrate) { if (session.bitrate) {
@ -3809,7 +3830,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
} }
} }
createRoom(director_room_input); setTimeout(function(director_room_input){createRoom(director_room_input);},20, director_room_input);
} }
if (session.chatbutton === true) { if (session.chatbutton === true) {
getById("chatbutton").classList.remove("hidden"); getById("chatbutton").classList.remove("hidden");
@ -3919,39 +3940,41 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
if (urlParams.has('waittimeout')){ if (urlParams.has('waittimeout')){
session.waitImageTimeout = parseInt(urlParams.get('waittimeout')) || 0; session.waitImageTimeout = parseInt(urlParams.get('waittimeout')) || 0;
} }
session.waitImageTimeoutObject = setTimeout(function() { if (!session.fakeFeeds){
session.waitImageTimeoutObject = true; session.waitImageTimeoutObject = setTimeout(function() {
try { session.waitImageTimeoutObject = true;
if ((session.view)) { try {
if (document.getElementById("mainmenu")) { if ((session.view)) {
if (session.waitImage){ if (document.getElementById("mainmenu")) {
getById("mainmenu").innerHTML += '<img id="retryimage"/>'; if (session.waitImage){
getById("retryimage").src = decodeURIComponent(session.waitImage); getById("mainmenu").innerHTML += '<img id="retryimage"/>';
getById("retryimage").onerror = function(){this.style.display='none';}; getById("retryimage").src = decodeURIComponent(session.waitImage);
getById("retryimage").onerror = function(){this.style.display='none';};
if (session.cover) { if (session.cover) {
getById("retryimage").style.objectFit = "cover"; getById("retryimage").style.objectFit = "cover";
} }
} else if (!(session.cleanOutput)){ } else if (!(session.cleanOutput)){
getById("mainmenu").innerHTML += '<div class="retry-spinner" id="retrySpinner"></div>'; getById("mainmenu").innerHTML += '<div class="retry-spinner" id="retrySpinner"></div>';
getById("retrySpinner").onclick = function(){ getById("retrySpinner").onclick = function(){
updateURL("cleanoutput"); updateURL("cleanoutput");
location.reload(); location.reload();
}
getById("retrySpinner").title = miscTranslations["waiting-for-the-stream"]
}
if (urlParams.has('waitmessage')){
getById("mainmenu").innerHTML += '<div id="retrymessage"></div>';
getById("retrymessage").innerText = urlParams.get('waitmessage');
getById("retrySpinner").title = urlParams.get('waitmessage');
} }
getById("retrySpinner").title = miscTranslations["waiting-for-the-stream"]
}
if (urlParams.has('waitmessage')){
getById("mainmenu").innerHTML += '<div id="retrymessage"></div>';
getById("retrymessage").innerText = urlParams.get('waitmessage');
getById("retrySpinner").title = urlParams.get('waitmessage');
} }
} }
} catch (e) {
errorlog(e);
} }
} catch (e) { }, session.waitImageTimeout);
errorlog(e); }
}
}, session.waitImageTimeout);
log("auto playing"); log("auto playing");
if ((iPad || iOS) && navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && SafariVersion > 13) { // Modern iOS doesn't need pop up if ((iPad || iOS) && navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 && SafariVersion > 13) { // Modern iOS doesn't need pop up
@ -4072,9 +4095,9 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
if (urlParams.has('flagship')) { if (urlParams.has('flagship')) {
session.flagship = true; session.flagship = true;
} }
if (!session.flagship && session.mobile && (session.limitTotalBitrate===false)){ //if (!session.flagship && session.mobile && (session.limitTotalBitrate===false)){
session.limitTotalBitrate = session.totalRoomBitrate_default; // 500, with the max per guest stream out at maxMobileBitrate (350kbps) or 35-kbps if more than X in the room. // session.limitTotalBitrate = session.totalRoomBitrate_default; // 500, with the max per guest stream out at maxMobileBitrate (350kbps) or 35-kbps if more than X in the room.
} //}
if (urlParams.has('maxmobilebitrate')) { if (urlParams.has('maxmobilebitrate')) {
session.maxMobileBitrate = parseInt(urlParams.has('maxmobilebitrate')) || 0; session.maxMobileBitrate = parseInt(urlParams.has('maxmobilebitrate')) || 0;

View File

@ -222,7 +222,6 @@
"joining-room": "You are in room", "joining-room": "You are in room",
"push-to-talk-enable": " enable director`s microphone or video<br>(only guests can see this feed)", "push-to-talk-enable": " enable director`s microphone or video<br>(only guests can see this feed)",
"hide-the-links": " LINKS (GUEST INVITES &amp; SCENES)", "hide-the-links": " LINKS (GUEST INVITES &amp; SCENES)",
"click-for-quick-room-overview": "\n<i class=\"las la-question-circle\"></i> <span data-translate=\"click-here-for-help\">Click Here for a quick overview and help</span>\n",
"click-here-for-help": "Click Here for a quick overview and help", "click-here-for-help": "Click Here for a quick overview and help",
"welcome-to-control-room": "\n<b>Welcome. This is the director's control-room for the group-chat.</b><br><br>\nYou can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.\n<br><br>\nA group room can handle normally around 6 to 20 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room\n", "welcome-to-control-room": "\n<b>Welcome. This is the director's control-room for the group-chat.</b><br><br>\nYou can host a group chat with friends using a room. Share the blue link to invite guests who will join the chat automatically.\n<br><br>\nA group room can handle normally around 6 to 20 guests, depending on numerous factors, including CPU and available bandwidth of all guests in the room\n",
"invite-users-to-join": "Guests can use the link to join the group room", "invite-users-to-join": "Guests can use the link to join the group room",
@ -266,9 +265,9 @@
"vertical-aspect-ratio": "Vertical video mode", "vertical-aspect-ratio": "Vertical video mode",
"learn-more-about-params": "Learn more about URL parameters at ", "learn-more-about-params": "Learn more about URL parameters at ",
"forward-to-room": "Transfer", "forward-to-room": "Transfer",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"disconnect-guest": "Hangup", "disconnect-guest": "Hangup",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Solo Talk", "voice-chat": " Solo Talk",
"add-to-scene": "add to scene 1", "add-to-scene": "add to scene 1",
"mute-guest": "mute guest", "mute-guest": "mute guest",
"More-scene-options": "More scene options", "More-scene-options": "More scene options",
@ -281,24 +280,19 @@
"hide-guest": "hide guest", "hide-guest": "hide guest",
"toggle-remote-speaker": "Deafen Guest", "toggle-remote-speaker": "Deafen Guest",
"toggle-remote-display": "Blind Guest", "toggle-remote-display": "Blind Guest",
"order-down": "<i class=\"las la-minus\"></i>",
"order-up": "<i class=\"las la-plus\"></i>",
"change-url": "Change URL", "change-url": "Change URL",
"change-params": "URL Params", "change-params": "URL Params",
"record-local": " Record Local", "record-local": " Record Local",
"record-remote": " Record Remote", "record-remote": " Record Remote",
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "advanced-audio-settings": "Audio Settings",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "advanced-camera-settings": "Video Settings",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"advanced-audio-settings": "<i class=\"las la-sliders-h\"></i> Audio Settings",
"advanced-camera-settings": "<i class=\"las la-sliders-h\"></i> Video Settings",
"user-raised-hand": "Lower Raised Hand", "user-raised-hand": "Lower Raised Hand",
"unmute": "un-mute", "unmute": "un-mute",
"unhide-guest": "un-hide", "unhide-guest": "un-hide",
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"video-source": " Video Source ", "video-source": " Video Source ",
"max-resolution": "Max Resolution", "max-resolution": "Max Resolution",
@ -379,7 +373,7 @@
"prefix-screenshare": "Prefix screenshare IDs", "prefix-screenshare": "Prefix screenshare IDs",
"more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.", "more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.",
"welcome-to-vdo-ninja-chat": "\nWelcome! You can send text messages directly to connected peers from here.\n", "welcome-to-vdo-ninja-chat": "\nWelcome! You can send text messages directly to connected peers from here.\n",
"privacy-disabled": "Privacy warning: The director will be able to remotely change which camera and microphone is being used while this page is open, if you continue.", "privacy-disabled": "Privacy warning: The director will be able to remotely change your camera, microphone, and URL while this page is open, if you continue.",
"face-mesh": "Face mesh (slow load)", "face-mesh": "Face mesh (slow load)",
"anonymous-mask": "Anonymous mask", "anonymous-mask": "Anonymous mask",
"dog-face": "Dog ears and nose", "dog-face": "Dog ears and nose",
@ -498,7 +492,7 @@
"transfer": "transfer", "transfer": "transfer",
"armed": "armed", "armed": "armed",
"transfer-guest-to-room": "Transfer guests to room:\n\n(Please note rooms must share the same password)", "transfer-guest-to-room": "Transfer guests to room:\n\n(Please note rooms must share the same password)",
"transfer-guest-to-url": "Transfer guests to new website URL.\n\n(Guests will be prompted to accept)", "transfer-guest-to-url": "Transfer guests to new website URL.\n\nGuests will be prompted to accept unless they are using &consent",
"change-url": "change URL", "change-url": "change URL",
"mute-in-scene": "mute in scene", "mute-in-scene": "mute in scene",
"unmute-guest": "un-mute guest", "unmute-guest": "un-mute guest",

View File

@ -282,9 +282,9 @@
"vertical-aspect-ratio": "竖屏视频模式", "vertical-aspect-ratio": "竖屏视频模式",
"learn-more-about-params": "了解有关 URL 参数的详细信息,请访问 ", "learn-more-about-params": "了解有关 URL 参数的详细信息,请访问 ",
"forward-to-room": "转移", "forward-to-room": "转移",
"send-direct-chat": "<i class=\"las la-envelope\"></i> 信息", "send-direct-chat": "信息",
"disconnect-guest": "挂断", "disconnect-guest": "挂断",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> 单人发言", "voice-chat": " 单人发言",
"add-to-scene": "添加到场景1", "add-to-scene": "添加到场景1",
"mute-guest": "静音客人", "mute-guest": "静音客人",
"More-scene-options": "更多场景选项", "More-scene-options": "更多场景选项",
@ -314,7 +314,7 @@
"undeafen": "开启声音", "undeafen": "开启声音",
"unblind": "开启视频", "unblind": "开启视频",
"close": "关闭", "close": "关闭",
"send-message": "发送信息<s pan=\"\"> </s>", "send-message": "发送信息",
"record-director-local": " 录制", "record-director-local": " 录制",
"video-source": " 视频源 ", "video-source": " 视频源 ",
"max-resolution": "最大分辨率", "max-resolution": "最大分辨率",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Chatovat", "send-direct-chat": "Chatovat",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Pokročilé", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Pokročilé",
"voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat",
"open-in-new-tab": "Otevřít v nové záložce", "open-in-new-tab": "Otevřít v nové záložce",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Erweitert", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Erweitert",
"voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat",
"open-in-new-tab": "In neuem Tab öffnen.", "open-in-new-tab": "In neuem Tab öffnen.",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -322,9 +322,9 @@
"learn-more-about-params": "Learn more about URL parameters at ", "learn-more-about-params": "Learn more about URL parameters at ",
"more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.", "more-than-four-can-join": "These four guest slots are just for demonstration. More than four guests can actually join a room.",
"forward-to-room": "Transfer", "forward-to-room": "Transfer",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"disconnect-guest": "Hangup", "disconnect-guest": "Hangup",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Solo Talk", "voice-chat": " Solo Talk",
"add-to-scene": "add to scene 1", "add-to-scene": "add to scene 1",
"mute-guest": "mute guest", "mute-guest": "mute guest",
"More-scene-options": "More scene options", "More-scene-options": "More scene options",

View File

@ -320,9 +320,9 @@
"learn-more-about-params": "Aprende sobre los parámetros URL en ", "learn-more-about-params": "Aprende sobre los parámetros URL en ",
"more-than-four-can-join": "Estos espacios para invitados son sólo un ejemplo. Pueden unirse más de cuatro invitados.", "more-than-four-can-join": "Estos espacios para invitados son sólo un ejemplo. Pueden unirse más de cuatro invitados.",
"forward-to-room": "Transferir", "forward-to-room": "Transferir",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Mensaje", "send-direct-chat": "Mensaje",
"disconnect-guest": "Colgar", "disconnect-guest": "Colgar",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Hablar solo", "voice-chat": " Hablar solo",
"add-to-scene": "Añadir a escena 1", "add-to-scene": "Añadir a escena 1",
"mute-guest": "Silenciar invitado", "mute-guest": "Silenciar invitado",
"More-scene-options": "Más opciones de escena", "More-scene-options": "Más opciones de escena",
@ -376,7 +376,7 @@
"undeafen": "No ensordecer", "undeafen": "No ensordecer",
"unblind": "Permitir ver video", "unblind": "Permitir ver video",
"close": "Cerrar", "close": "Cerrar",
"send-message": "enviar mensaje<s pan=\"\"> </s>", "send-message": "enviar mensaje",
"record-director-local": " Grabar", "record-director-local": " Grabar",
"logo-header": "\n<font id=\"qos\">V</font>DO.Ninja \n", "logo-header": "\n<font id=\"qos\">V</font>DO.Ninja \n",
"only-director-can-hear-you": "Solo el direcctor puede escucharte actualmente.", "only-director-can-hear-you": "Solo el direcctor puede escucharte actualmente.",

View File

@ -320,9 +320,9 @@
"learn-more-about-params": "URL parametroez gehiago ikasi hemen ", "learn-more-about-params": "URL parametroez gehiago ikasi hemen ",
"more-than-four-can-join": "Lau gonbidatu hauen lekuak adibidea besterik ez dira. Lau gonbidatu baino gehiago batu daitezke.", "more-than-four-can-join": "Lau gonbidatu hauen lekuak adibidea besterik ez dira. Lau gonbidatu baino gehiago batu daitezke.",
"forward-to-room": "Bidali", "forward-to-room": "Bidali",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Mezua", "send-direct-chat": "Mezua",
"disconnect-guest": "Eskegi", "disconnect-guest": "Eskegi",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Bakarrik hitz egin", "voice-chat": " Bakarrik hitz egin",
"add-to-scene": "Gehitu 1.eszenara", "add-to-scene": "Gehitu 1.eszenara",
"mute-guest": "Mututu gonbidatua", "mute-guest": "Mututu gonbidatua",
"More-scene-options": "Eszena aukera gehiago", "More-scene-options": "Eszena aukera gehiago",
@ -375,7 +375,7 @@
"undeafen": "entzun", "undeafen": "entzun",
"unblind": "ikusarazi", "unblind": "ikusarazi",
"close": "itxi", "close": "itxi",
"send-message": "bidali mezua<s pan=\"\"> </s>", "send-message": "bidali mezua",
"record-director-local": " Grabazioa", "record-director-local": " Grabazioa",
"director-muted-you": "Zuzendariak isildu zaitu.", "director-muted-you": "Zuzendariak isildu zaitu.",
"mirror-video": "Ispilua", "mirror-video": "Ispilua",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced",
"voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat",
"open-in-new-tab": "Ouvrir dans un nouvel onglet", "open-in-new-tab": "Ouvrir dans un nouvel onglet",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced",
"voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat",
"open-in-new-tab": "Apri in una nuova Tab", "open-in-new-tab": "Apri in una nuova Tab",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced",
"voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat",
"open-in-new-tab": "新しいタブで開く", "open-in-new-tab": "新しいタブで開く",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Bericht", "send-direct-chat": "Bericht",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Geavanceerd", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Geavanceerd",
"voice-chat": "<i class=\"las la-microphone\"></i> Geluids Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Geluids Chat",
"open-in-new-tab": "Open in nieuw tabblad", "open-in-new-tab": "Open in nieuw tabblad",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Erehay ouyay ancay epray-enerategay", "send-direct-chat": "Erehay ouyay ancay epray-enerategay",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Erehay ouyay ancay epray-enerategay", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Erehay ouyay ancay epray-enerategay",
"voice-chat": "<i class=\"las la-microphone\"></i> Erehay ouyay ancay epray-enerategay", "voice-chat": "<i class=\"las la-microphone\"></i> Erehay ouyay ancay epray-enerategay",
"open-in-new-tab": "Openway inway ewnay Abtay", "open-in-new-tab": "Openway inway ewnay Abtay",
@ -391,7 +391,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -171,8 +171,8 @@
"select-screen-to-share": "SELECIONAR A TELA PARA COMPARTILHAR", "select-screen-to-share": "SELECIONAR A TELA PARA COMPARTILHAR",
"select-the-video-files-to-share": "SELECIONE OS ARQUIVOS DE VÍDEO PARA COMPARTILHAR", "select-the-video-files-to-share": "SELECIONE OS ARQUIVOS DE VÍDEO PARA COMPARTILHAR",
"send-chat": "Enviar", "send-chat": "Enviar",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Mensagem", "send-direct-chat": "Mensagem",
"send-message": "enviar mensagem<s pan=\"\"> </s>", "send-message": "enviar mensagem",
"share-local-video-file": "Arquivo de mídia de transmissão", "share-local-video-file": "Arquivo de mídia de transmissão",
"share-screen-with-room": "Compartilhamento de tela com sala", "share-screen-with-room": "Compartilhamento de tela com sala",
"share-website-iframe": "Compartilhar site", "share-website-iframe": "Compartilhar site",
@ -213,7 +213,7 @@
"video-source": " Fonte de vídeo ", "video-source": " Fonte de vídeo ",
"virtual-background": "Plano de fundo virtual", "virtual-background": "Plano de fundo virtual",
"virtual-backgrounds": "Planos de fundo virtuais", "virtual-backgrounds": "Planos de fundo virtuais",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> Conversa individual", "voice-chat": " Conversa individual",
"waiting-for-camera": "Aguardando o carregamento da câmera", "waiting-for-camera": "Aguardando o carregamento da câmera",
"waiting-for-camera-to-load": "Aguardando a câmera carregar", "waiting-for-camera-to-load": "Aguardando a câmera carregar",
"waiting-for-mic-to-load": "Aguardando o microfone carregar", "waiting-for-mic-to-load": "Aguardando o microfone carregar",

View File

@ -279,7 +279,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Enviar mensagem", "send-direct-chat": "Enviar mensagem",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Avançadas", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Avançadas",
"voice-chat": "<i class=\"las la-microphone\"></i> Chat de voz", "voice-chat": "<i class=\"las la-microphone\"></i> Chat de voz",
"open-in-new-tab": "Abrir num novo separador", "open-in-new-tab": "Abrir num novo separador",
@ -391,7 +391,7 @@
"undeafen": "devolver som", "undeafen": "devolver som",
"unblind": "devolver imagem", "unblind": "devolver imagem",
"close": "fechar", "close": "fechar",
"send-message": "enviar mensagem<s pan=\"\"> </s>", "send-message": "enviar mensagem",
"record-director-local": " Gravar", "record-director-local": " Gravar",
"only-director-can-hear-you": "Apenas o realizador o pode ouvir de momento.", "only-director-can-hear-you": "Apenas o realizador o pode ouvir de momento.",
"director-muted-you": "O realizador desativou o seu microfone.", "director-muted-you": "O realizador desativou o seu microfone.",

View File

@ -303,9 +303,9 @@
"vertical-aspect-ratio": "Портретный режим", "vertical-aspect-ratio": "Портретный режим",
"learn-more-about-params": "Узнать больше о возможных параметрах на ", "learn-more-about-params": "Узнать больше о возможных параметрах на ",
"forward-to-room": "Перевести", "forward-to-room": "Перевести",
"send-direct-chat": "<i class=\"las la-envelope\"></i> личное сообщение", "send-direct-chat": "личное сообщение",
"disconnect-guest": "Отключить", "disconnect-guest": "Отключить",
"voice-chat": "<i class=\"las la-microphone\" style=\"color:#090\"></i> разговор тет-а-тет", "voice-chat": " разговор тет-а-тет",
"add-to-scene": "Добавить в 1 сцену", "add-to-scene": "Добавить в 1 сцену",
"mute-guest": "Выкл микрофоны гостям", "mute-guest": "Выкл микрофоны гостям",
"More-scene-options": "Больше настроек сцены", "More-scene-options": "Больше настроек сцены",
@ -335,7 +335,7 @@
"unblind": "Вкл. видео на стороне гостя", "unblind": "Вкл. видео на стороне гостя",
"undeafen": "Вкл. звук на стороне гостя", "undeafen": "Вкл. звук на стороне гостя",
"close": "Закрыть", "close": "Закрыть",
"send-message": "Сообщение <s pan=\"\"> </s>", "send-message": "Сообщение ",
"record-director-local": " Запись", "record-director-local": " Запись",
"video-source": "Источник видео ", "video-source": "Источник видео ",
"max-resolution": "Лучшее качество", "max-resolution": "Лучшее качество",

View File

@ -300,7 +300,7 @@
"change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>", "change-to-low-quality": "&nbsp;&nbsp;<i class=\"las la-video-slash\"></i>",
"change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>", "change-to-medium-quality": "&nbsp;&nbsp;<i class=\"las la-video\"></i>",
"change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>", "change-to-high-quality": "&nbsp;&nbsp;<i class=\"las la-binoculars\"></i>",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Message", "send-direct-chat": "Message",
"advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced", "advanced-camera-settings": "<i class=\"las la-cog\"></i> Advanced",
"voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat", "voice-chat": "<i class=\"las la-microphone\"></i> Voice Chat",
"open-in-new-tab": "Yeni Sekmede Aç", "open-in-new-tab": "Yeni Sekmede Aç",
@ -412,7 +412,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"only-director-can-hear-you": "Only the director can hear you currently.", "only-director-can-hear-you": "Only the director can hear you currently.",
"director-muted-you": "The director has muted you.", "director-muted-you": "The director has muted you.",

View File

@ -302,7 +302,7 @@
"this-is-obs-browser-source-link": "Використовуйте OBS чи інший софт для захоплення групового чату", "this-is-obs-browser-source-link": "Використовуйте OBS чи інший софт для захоплення групового чату",
"more-than-four-can-join": "Це місця для гостей як приклад, їх може бути більше", "more-than-four-can-join": "Це місця для гостей як приклад, їх може бути більше",
"forward-to-room": "Трансфер", "forward-to-room": "Трансфер",
"send-direct-chat": "<i class=\"las la-envelope\"></i> Повідомлення", "send-direct-chat": "Повідомлення",
"add-to-scene": "Add to Scene", "add-to-scene": "Add to Scene",
"mute-scene": "не давати звук у сцені", "mute-scene": "не давати звук у сцені",
"mute-guest": "відключити мікрофон", "mute-guest": "відключити мікрофон",
@ -383,7 +383,7 @@
"undeafen": "un-deafen", "undeafen": "un-deafen",
"unblind": "un-blind", "unblind": "un-blind",
"close": "close", "close": "close",
"send-message": "send message<s pan=\"\"> </s>", "send-message": "send message",
"record-director-local": " Record", "record-director-local": " Record",
"select-digital-effect": " Digital Video Effects: ", "select-digital-effect": " Digital Video Effects: ",
"no-effects-applied": "No effects applied", "no-effects-applied": "No effects applied",

File diff suppressed because one or more lines are too long