add automatic direct play to transcoding fallback

This commit is contained in:
Luke Pulverenti 2017-02-20 02:07:47 -05:00
parent 61fe362f2d
commit 3a67a4edc2
18 changed files with 20 additions and 18 deletions

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
.volumeOsd{position:fixed;top:8%;right:3%;z-index:100000;background:#222;background:rgba(0,0,0,.8);padding:1em;color:#fff;backdrop-filter:blur(5px);-webkit-border-radius:.25em;border-radius:.25em;-webkit-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.volumeOsd-hidden{opacity:0}.volumeOsdIcon{font-size:300%;display:block;margin:.25em .7em}.volumeOsdProgressOuter{margin:1.5em .25em 1em;height:.35em;background:#222;-webkit-border-radius:.25em;border-radius:.25em}.volumeOsdProgressInner{width:40%;background:#52B54B;height:100%;-webkit-border-radius:.25em;border-radius:.25em}

View file

@ -0,0 +1 @@
define(["events","playbackManager","dom","browser","css!./volumeosd","material-icons"],function(events,playbackManager,dom,browser){"use strict";function getOsdElementHtml(){var html="";return html+='<i class="md-icon volumeOsdIcon">&#xE050;</i>',html+='<div class="volumeOsdProgressOuter"><div class="volumeOsdProgressInner"></div></div>'}function ensureOsdElement(){var elem=osdElement;elem||(enableAnimation=browser.supportsCssAnimation(),elem=document.createElement("div"),elem.classList.add("hide"),elem.classList.add("volumeOsd"),elem.classList.add("volumeOsd-hidden"),elem.innerHTML=getOsdElementHtml(),iconElement=elem.querySelector("i"),progressElement=elem.querySelector(".volumeOsdProgressInner"),document.body.appendChild(elem),osdElement=elem)}function onHideComplete(){this.classList.add("hide")}function showOsd(){clearHideTimeout();var elem=osdElement;dom.removeEventListener(elem,dom.whichTransitionEvent(),onHideComplete,{once:!0}),elem.classList.remove("hide"),void elem.offsetWidth,requestAnimationFrame(function(){elem.classList.remove("volumeOsd-hidden"),hideTimeout=setTimeout(hideOsd,3e3)})}function clearHideTimeout(){hideTimeout&&(clearTimeout(hideTimeout),hideTimeout=null)}function hideOsd(){clearHideTimeout();var elem=osdElement;elem&&(enableAnimation?(void elem.offsetWidth,requestAnimationFrame(function(){elem.classList.add("volumeOsd-hidden"),dom.addEventListener(elem,dom.whichTransitionEvent(),onHideComplete,{once:!0})})):onHideComplete.call(elem))}function updatePlayerVolumeState(isMuted,volume){iconElement&&(iconElement.innerHTML=isMuted?"&#xE04F;":"&#xE050;"),progressElement&&(progressElement.style.width=(volume||0)+"%")}function releaseCurrentPlayer(){var player=currentPlayer;player&&(events.off(player,"volumechange",onVolumeChanged),events.off(player,"playbackstop",hideOsd),currentPlayer=null)}function onVolumeChanged(e){var player=this;ensureOsdElement(),updatePlayerVolumeState(player.isMuted(),player.getVolume()),showOsd()}function bindToPlayer(player){player!==currentPlayer&&(releaseCurrentPlayer(),currentPlayer=player,player&&(hideOsd(),events.on(player,"volumechange",onVolumeChanged),events.on(player,"playbackstop",hideOsd)))}var currentPlayer,osdElement,iconElement,progressElement,enableAnimation,hideTimeout;events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer())});