auto-video-mute iOS video when loss of focus

This commit is contained in:
Steve Seguin 2022-02-08 15:56:33 -05:00 committed by GitHub
parent 4eac654d13
commit 2411804868
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

View File

@ -79,7 +79,7 @@
<link itemprop="url" href="./media/vdoNinja_logo_full.png" />
</span>
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=37"></script>
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=348"></script>
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=350"></script>
<input id="zoomSlider" type="range" style="display: none;" />
<div id="header">
@ -1998,11 +1998,11 @@
// session.lowBitrateCutoff = 300; // Set a minimum bitrate (in kbps) before the stream is hidden. Useful for IRL streams maybe
</script>
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script>
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=260"></script>
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=261"></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>
-->
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=297"></script>
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=299"></script>
</body>
</html>

10
lib.js
View File

@ -7279,6 +7279,16 @@ function directorSendMessage(ele) {
}
function toggleAutoVideoMute(){ // for iOS devices, that tab out.
// document.visibilityState
if (!session.videoMuted && (session.permaid!==false)){
var msg = {};
msg.videoMuted = (document.visibilityState === 'hidden') || false;
session.sendMessage(msg);
pokeIframeAPI('video-mute-state', document.visibilityState);
}
}
function toggleVideoMute(apply = false) { // TODO: I need to have this be MUTE, toggle, with volume not touched.
if (apply) {
session.videoMuted = !session.videoMuted;

View File

@ -3805,6 +3805,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
//log("hidden : " +document.hidden);
log("vis : "+document.visibilityState);
if ((iOS) || (iPad)) { // fixes a bug on iOS devices. Not need with other devices?
toggleAutoVideoMute();
clearTimeout(visAudioTimeout);
if (document.visibilityState === 'visible') {
visAudioTimeout = setTimeout(function() {