mirror of
https://github.com/eliasstepanik/vdo.ninja.git
synced 2026-01-11 21:58:35 +00:00
fix for &ovb
This commit is contained in:
parent
facdbec1ab
commit
744fcff54d
64
index.html
64
index.html
@ -57,7 +57,7 @@
|
||||
<meta property="twitter:image" content="./media/vdoNinja_logo_full.png" />
|
||||
<meta name="msapplication-TileColor" content="#da532c" />
|
||||
<meta name="theme-color" content="#ffffff" />
|
||||
<link rel="stylesheet" href="./main.css?ver=226" />
|
||||
<link rel="stylesheet" href="./main.css?ver=229" />
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/adapter.js"></script>
|
||||
<style id="lightbox-animations" type="text/css"></style>
|
||||
<!-- <link rel="manifest" href="manifest.json" /> -->
|
||||
@ -83,7 +83,7 @@
|
||||
</span>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=41"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=542"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=543"></script>
|
||||
<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>
|
||||
<div id="header">
|
||||
@ -326,7 +326,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div style="margin: 0 auto; width: 470px; max-width:100%;">
|
||||
<span style="margin: 0 auto; width: 470px; max-width:100%;display: block;">
|
||||
<button onclick="createRoom()" class="gobutton" style="width:100%;" alt="Enter the room as the group's director" title="You'll enter as the room's director">
|
||||
<span data-translate="enter-the-rooms-control">Enter the room's Control Center in the director's role</span>
|
||||
</button>
|
||||
@ -353,7 +353,7 @@
|
||||
<button onclick="jumptoroom2()" class="gobutton" style="width:100%;" alt="Enter the room as the group's director" title="You'll enter as the room's director">
|
||||
<span data-translate="join-the-room-basic">Join the room as a Participant, rather than a director</span>
|
||||
</button>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="outer close">
|
||||
<div class="inner">
|
||||
@ -385,13 +385,13 @@
|
||||
<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>
|
||||
</div>
|
||||
<span 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>
|
||||
<span><i class="las la-plug"></i><span data-translate="your-device-is-powered">Your device is powered</span></span>
|
||||
<span><i class="las la-ethernet"></i><span data-translate="your-connection-is-hardwired-instead-of-wifi">Your connection is hardwired instead of wifi</span></span>
|
||||
<span><i class="las la-headphones"></i><span data-translate="you-are-using-headphones-earphones">You are using headphones / earphones</span></span>
|
||||
</span>
|
||||
<span id="videoMenu" class="videoMenu">
|
||||
</div>
|
||||
<div id="videoMenu" class="videoMenu">
|
||||
<span style="padding-right:2px;display:inline-block;position:relative;top:1px;"><i class="las la-video"></i><span data-translate="video-source"> Video Source </span></span>
|
||||
<span style="display:inline-block;padding-top: 5px;">
|
||||
<select id="videoSourceSelect" alt="Video source list"></select>
|
||||
@ -403,10 +403,10 @@
|
||||
<i class="las la-info-circle"></i>
|
||||
<p><span id="cameraTipContext1"></span></p>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<br />
|
||||
<center>
|
||||
<span id="videoSettings" style="display: none;">
|
||||
<div id="videoSettings" style="display: none;">
|
||||
<form id="webcamquality">
|
||||
<input type="radio" id="fullhd" alt="1080p60 video capture" name="resolution" value="0" />
|
||||
<label for="fullhd">
|
||||
@ -424,7 +424,7 @@
|
||||
</label>
|
||||
<div id="webcamstats" style="padding: 5px 0 0 0;"></div>
|
||||
</form>
|
||||
</span>
|
||||
</div>
|
||||
</center>
|
||||
<div id="audioMenu" class="form-group multiselect" alt="tip: Hold CTRL (command) to select Multiple" title="tip: Hold CTRL (command) to select Multiple">
|
||||
<span class='gear_microphone hidden'>
|
||||
@ -451,7 +451,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<span id="headphonesDiv" class="audioMenu">
|
||||
<div id="headphonesDiv" class="audioMenu">
|
||||
<div class="audioTitle2">
|
||||
<i class="las la-headphones"></i><span data-translate="select-output-source"> Audio Output Destination
|
||||
</span><button onclick="playtone()" class="white" style="margin:0 0 0 15px;padding: 2px 10px 0px 10px;" type="button">Test</button></div>
|
||||
@ -460,7 +460,7 @@
|
||||
<i class="las la-info-circle"></i>
|
||||
<p><span id="headphoneTipContext1"></span></p>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div id="avatarDiv" class="hidden">
|
||||
<div style="text-align: left;display: inline-block;">
|
||||
@ -510,13 +510,13 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<span id="addPasswordBasic" >
|
||||
<div id="addPasswordBasic" >
|
||||
<i class="las la-key"></i><span data-translate="add-a-password"> Add a Password</span>
|
||||
<input type="text" id="passwordBasicInput" placeholder="optional" style="border: solid 1px #AAA;
|
||||
padding: 4px 6px;
|
||||
width: 200px;
|
||||
margin: 0 6px;"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div id="SafariWarning" class="startupWarning hidden">
|
||||
<i class="las la-exclamation-circle"></i>
|
||||
@ -574,7 +574,7 @@
|
||||
<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>
|
||||
</div>
|
||||
<p id="audioScreenShare1">
|
||||
<div id="audioScreenShare1">
|
||||
<i class="las la-microphone-alt"></i>
|
||||
<span data-translate="audio-sources">Audio Sources</span>
|
||||
<select id="audioSourceScreenshare" multiple alt="tip: Hold CTRL (command) to select Multiple" title="tip: Hold CTRL (command) to select Multiple" onchange="requestAudioStream();">
|
||||
@ -585,9 +585,9 @@
|
||||
Other Audio Sources
|
||||
</option>
|
||||
</select>
|
||||
</p>
|
||||
</div>
|
||||
<br />
|
||||
<span id="headphonesDiv2">
|
||||
<div id="headphonesDiv2">
|
||||
<i class="las la-headphones"></i>
|
||||
<span data-translate="select-output-source"> Audio Output Destination: <button onclick="playtone(true)" class="white" style="padding:3px 5px 2px 5px; margin:0; margin-left:15px; position: relative; " type="button">Test</button></span>
|
||||
<select id="outputSourceScreenshare" style="background-color: #FFF; margin-top:5px; padding:10px 5px; width:100%; display:inline-block; vertical-align: middle;" onclick="requestOutputAudioStream();">
|
||||
@ -595,9 +595,9 @@
|
||||
Default Device
|
||||
</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
<br />
|
||||
<span id="audioScreenCaptureDocs" data-translate="application-audio-capture">For application-specific audio capture, <a href='https://docs.vdo.ninja/audio' style='color: #007AC8;'>see here</a></span>
|
||||
<div id="audioScreenCaptureDocs" data-translate="application-audio-capture">For application-specific audio capture, <a href='https://docs.vdo.ninja/audio' style='color: #007AC8;'>see here</a></div>
|
||||
</div>
|
||||
<div class="outer close">
|
||||
<div class="inner">
|
||||
@ -628,8 +628,7 @@
|
||||
<span data-translate="generate-invite-link">GENERATE THE INVITE LINK</span>
|
||||
</button>
|
||||
<br />
|
||||
<br />
|
||||
<div style="margin: 20px; max-width: 400px; text-align: left; margin: auto auto;">
|
||||
<span style="margin: 20px; max-width: 420px; text-align: left; margin: auto auto;display:block;">
|
||||
<div class="invite_setting_group">
|
||||
<h4>
|
||||
<span data-translate="quality-paramaters">Quality settings</span>
|
||||
@ -702,7 +701,7 @@
|
||||
<div class="invite_setting_item">
|
||||
<input type="checkbox" id="invite_hostlink" />
|
||||
<label for="invite_hostlink">
|
||||
<span data-translate="generate-host-link" title="Generate host link to chat with guest; 2-way interview chat.">Generate host link also</span>
|
||||
<span data-translate="generate-host-link" title="A link for the host speaker to chat with the guest; 2-way interview chat.">Create a link for the host speaker</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="invite_setting_item">
|
||||
@ -724,7 +723,7 @@
|
||||
<a style="text-decoration: none; color: blue;" target="_blank" href="https://docs.vdo.ninja/advanced-settings">documentation</a> for a list of all options and details.<br /><br />
|
||||
Try out the advanced <a style="text-decoration: none; color: blue;" target="_blank" href="https://invite.vdo.ninja/">invite generator</a> here as well.
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="outer close">
|
||||
<div class="inner">
|
||||
@ -790,8 +789,7 @@
|
||||
<li>The site will try to auto-optimize standard Youtube or Twitch links.</li>
|
||||
<li>Remote websites must be CORS/IFrame compatible with full SSL-encryption enabled.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="iFramePreview" style=" width: 1280px; height: 720px; margin: auto; padding: 10px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer close">
|
||||
<div class="inner">
|
||||
@ -809,18 +807,18 @@
|
||||
</div>
|
||||
|
||||
<div id="container-8" class="column columnfade pointer rounded card hidden" style="overflow: hidden;" onclick="window.location = './mixer.html';">
|
||||
<h2><span data-translate="try-the-mixer-out">Create layouts with Mixer</span></h2>
|
||||
<h2><span data-translate="try-the-mixer-out">Custom Mixed Layouts</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-blender"></i>
|
||||
</div>
|
||||
|
||||
<div id="container-14" class="column columnfade pointer rounded card hidden" style="overflow: hidden;" onclick="window.location = 'https://versus.cam';">
|
||||
<h2><span data-translate="try-out-versus-cam">Manage streams with Versus</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-blender"></i>
|
||||
<h2><span data-translate="try-out-versus-cam">Multi-Stream Monitor</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-gamepad"></i>
|
||||
</div>
|
||||
|
||||
<div id="container-15" class="column columnfade pointer rounded card hidden" style="overflow: hidden;" onclick="window.location = './comms.html';">
|
||||
<h2><span data-translate="voice-comms-app">Production voice comms</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-blender"></i>
|
||||
<h2><span data-translate="voice-comms-app">Group Voice Comms</span></h2>
|
||||
<i style="margin-top:30px;font-size:600%;overflow:hidden;" class="las la-comments"></i>
|
||||
</div>
|
||||
|
||||
<div id="container-9" class="column columnfade pointer rounded card hidden" style="overflow: hidden;" onclick="window.location = 'https://guides.vdo.ninja';">
|
||||
@ -891,7 +889,7 @@
|
||||
<br />
|
||||
<br />
|
||||
<h3>
|
||||
🛠 For support, see the <a href="https://www.reddit.com/r/VDONinja/">sub-reddit <i class="lab la-reddit-alien"></i></a> or join the <a href="https://discord.gg/T4xpQVv">Discord <i class="lab la-discord"></i></a>. The <a href="https://docs.vdo.ninja/">documentation is here</a> and my personal email is <i>steve@seguin.email</i>
|
||||
🛠 For support, join the <a href="https://discord.gg/T4xpQVv">Discord <i class="lab la-discord"></i></a> or see the <a href="https://www.reddit.com/r/VDONinja/">sub-reddit <i class="lab la-reddit-alien"></i></a>. The <a href="https://docs.vdo.ninja/">documentation is here</a> and my personal email is <i>steve@seguin.email</i>
|
||||
</h3>
|
||||
|
||||
</span>
|
||||
@ -2225,7 +2223,7 @@
|
||||
|
||||
|
||||
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.6b";
|
||||
session.version = "22.6c";
|
||||
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
|
||||
@ -2297,7 +2295,7 @@
|
||||
// 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.
|
||||
</script>
|
||||
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=544"></script>
|
||||
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=545"></script>
|
||||
<!--
|
||||
// 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>
|
||||
|
||||
8
lib.js
8
lib.js
@ -28483,9 +28483,15 @@ function adjustPan(UUID, value){
|
||||
|
||||
function addDelayNode(source, UUID, trackid){ // append the delay Node to the track??? WOULD THIS WORK?
|
||||
|
||||
var delay = parseFloat(session.sync/1000);
|
||||
var delay = parseFloat(session.sync) || 0;
|
||||
if (delay<0){delay=0;}
|
||||
|
||||
if (session.buffer && (session.buffer>0)){
|
||||
delay += parseFloat(session.buffer);
|
||||
}
|
||||
|
||||
delay = delay/1000;
|
||||
|
||||
session.rpcs[UUID].inboundAudioPipeline[trackid].delayNode = session.audioCtx.createDelay(delay+5);// 5 seconds additionally added for the purpose of flexibility
|
||||
|
||||
session.rpcs[UUID].inboundAudioPipeline[trackid].delayNode.delayTime.value = delay; // delayTime takes it in seconds.
|
||||
|
||||
91
main.css
91
main.css
@ -34,6 +34,10 @@
|
||||
border: 0;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: #0447c888;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
table {
|
||||
display: inline-block;
|
||||
@ -578,7 +582,7 @@ hr {
|
||||
.invite_setting_group {
|
||||
margin: 20px 0px;
|
||||
background-color: #d2d2d2;
|
||||
padding: 10px;
|
||||
padding: 10px 30px;
|
||||
}
|
||||
|
||||
.invite_setting_group h4 {
|
||||
@ -589,6 +593,10 @@ hr {
|
||||
margin: 10px 0px;
|
||||
}
|
||||
|
||||
.invite_setting_item > input[type="text"], .invite_setting_item > select{
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
.directorsgrid {
|
||||
justify-items: normal;
|
||||
grid-auto-columns: minmax(100px, 530px);
|
||||
@ -923,6 +931,7 @@ button.glyphicon-button.active.focus {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
|
||||
#controlButtons {
|
||||
position: fixed;
|
||||
z-index: 5;
|
||||
@ -1368,10 +1377,18 @@ body {
|
||||
margin: 20px;
|
||||
padding: 10px 50px;
|
||||
}
|
||||
@-webkit-keyframes pulsate {
|
||||
0% { box-shadow: 0 0 31px #244e1c44; transform: scale(1.0);}
|
||||
50% { box-shadow: 0 0 17px #0004; transform: scale(0.99);}
|
||||
100% { box-shadow: 0 0 31px #244e1c44; transform: scale(1.0);}
|
||||
}
|
||||
.gowebcam:enabled {
|
||||
background-color: #3C3 !important;
|
||||
background-color: #26e726 !important;
|
||||
background: radial-gradient(#26e726, #2EeF2E);
|
||||
color: black;
|
||||
font-weight: bold !important;;
|
||||
font-weight: bold !important;
|
||||
box-shadow: 0 0 31px 0px #244e1c44;
|
||||
animation: pulsate 2s ease-out infinite;
|
||||
}
|
||||
#mainmenu {
|
||||
height:100vh;
|
||||
@ -1644,34 +1661,11 @@ input[type=range]:focus::-ms-fill-upper {
|
||||
float: none !important;
|
||||
padding: 15px 10px 1px 10px !important;
|
||||
}
|
||||
#videoSettings {
|
||||
div.multiselect, .videoMenu, #videoSettings {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
}
|
||||
.videoMenu {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
}
|
||||
div.multiselect {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
}
|
||||
#headphonesDiv3 {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#effectsDiv3 {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#effectsDiv {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#headphonesDiv {
|
||||
#addPasswordBasic, #headphonesDiv, #effectsDiv, #effectsDiv3, #headphonesDiv3 {
|
||||
max-width: 100% !important;
|
||||
min-width: 100% !important;
|
||||
overflow: hidden !important;
|
||||
@ -1682,12 +1676,7 @@ input[type=range]:focus::-ms-fill-upper {
|
||||
#outputSource3 {
|
||||
width: 100% !important;
|
||||
}
|
||||
#audioSourceScreenshare {
|
||||
max-width: 90% !important;
|
||||
min-width: 90% !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
#videoSettings2 {
|
||||
#audioSourceScreenshare, #videoSettings2 {
|
||||
max-width: 90% !important;
|
||||
min-width: 90% !important;
|
||||
overflow: hidden !important;
|
||||
@ -1796,14 +1785,7 @@ input[type=range]:focus::-ms-fill-upper {
|
||||
resize: both;
|
||||
}
|
||||
|
||||
p#audioScreenShare1 {
|
||||
border: 1px solid #ccc;
|
||||
display: inline-block;
|
||||
background: #f3f3f3;
|
||||
padding: 4px 10px 10px 10px;
|
||||
text-align: left;
|
||||
min-width:350px;
|
||||
}
|
||||
|
||||
#headphonesDiv2{
|
||||
background-color: #f3f3f3;
|
||||
min-width: 350px;
|
||||
@ -1814,7 +1796,14 @@ p#audioScreenShare1 {
|
||||
margin: 10px 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#audioScreenShare1 {
|
||||
border: 1px solid #ccc;
|
||||
display: inline-block;
|
||||
background: #f3f3f3;
|
||||
padding: 4px 10px 10px 10px;
|
||||
text-align: left;
|
||||
min-width:350px;
|
||||
}
|
||||
#audioScreenShare1 > i {
|
||||
display: inline-block;
|
||||
}
|
||||
@ -1897,15 +1886,22 @@ label {
|
||||
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M 13 4 C 11.90625 4 11 4.90625 11 6 L 11 18 C 11 19.09375 11.90625 20 13 20 L 19 20 C 20.09375 20 21 19.09375 21 18 L 21 6 C 21 4.90625 20.09375 4 19 4 Z M 13 6 L 19 6 L 19 18 L 13 18 Z M 7 14 L 7 18 C 7 21.300781 9.699219 24 13 24 L 15 24 L 15 26 L 11 26 L 11 28 L 21 28 L 21 26 L 17 26 L 17 24 L 19 24 C 22.300781 24 25 21.300781 25 18 L 25 14 L 23 14 L 23 18 C 23 20.21875 21.21875 22 19 22 L 13 22 C 10.78125 22 9 20.21875 9 18 L 9 14 Z'/%3E%3C/svg%3E")!important;
|
||||
}
|
||||
|
||||
|
||||
.container-inner > div, .container-inner > span > div, .container-inner button:not(.gowebcam), .message-card, .cameraTip {
|
||||
border-radius: 5px;
|
||||
box-shadow: 10px 8px 32px -10px #8883;
|
||||
}
|
||||
|
||||
#dropButton{
|
||||
font-size: 2em;
|
||||
display: block;
|
||||
margin: auto;
|
||||
background-color: #5555;
|
||||
width: 100px;
|
||||
border-radius: 30px;
|
||||
cursor:pointer;
|
||||
color: #636363
|
||||
color: #636363;
|
||||
padding: 3px;
|
||||
width: 100px;
|
||||
}
|
||||
.fullcolumn {
|
||||
float: left;
|
||||
@ -3140,9 +3136,6 @@ div#chatBody a {
|
||||
padding: 10px;
|
||||
max-width: 1191px
|
||||
}
|
||||
@media only screen and (max-width: 390px) {
|
||||
|
||||
}
|
||||
|
||||
#directorLinksButton{
|
||||
cursor:pointer;
|
||||
@ -4101,6 +4094,8 @@ input:checked + .slider:before {
|
||||
content: "\f05a"; }
|
||||
.la-play:before {
|
||||
content: "\f04b"; }
|
||||
.la-gamepad:before {
|
||||
content: "\f11b"; }
|
||||
.la-blender:before {
|
||||
content: "\f517"; }
|
||||
.la-heartbeat:before {
|
||||
|
||||
2
main.js
2
main.js
@ -1653,7 +1653,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
||||
}
|
||||
}
|
||||
|
||||
if (urlParams.has('directoronly') || urlParams.has('do')){
|
||||
if (urlParams.has('directoronly') || urlParams.has('directorsonly') || urlParams.has('do')){
|
||||
session.viewDirectorOnly = true;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user