1 line
No EOL
23 KiB
JavaScript
1 line
No EOL
23 KiB
JavaScript
import layoutManager from"./../layoutmanager.js";import datetime from"./../common/datetime.js";import mediaInfo from"./../mediainfo/mediainfo.js";import playbackManager from"./../common/playback/playbackmanager.js";import dom from"./../dom.js";import connectionManager from"./../emby-apiclient/connectionmanager.js";import inputManager from"./../common/inputmanager.js";import userSettings from"./../common/usersettings/usersettings.js";import keyboardManager from"./../input/keyboard.js";import events from"./../emby-apiclient/events.js";function updateDurationText(elem,enableProgressByTimeOfDay,durationTicks,displayItem,enableTimeRemaining){if(null==durationTicks)elem.innerHTML="";else if(isNaN(durationTicks))elem.innerHTML="";else{let html=datetime.getDisplayRunningTime(durationTicks);enableTimeRemaining&&(html="-"+html,enableProgressByTimeOfDay||"Video"!==displayItem?.MediaType||(html+='<span class="osd-endsat"><span class="osd-endsat-dot">/</span>'+mediaInfo.getEndsAtFromPosition(durationTicks,0,!1).toLowerCase()+"</span>")),elem.innerHTML=html}}function getDisplayTime(date,showSeconds){return(showSeconds?datetime.toLocaleTimeString(date,{hour:"numeric",minute:"2-digit",second:"2-digit"}):datetime.getDisplayTime(date)).toLowerCase()}function getDisplayTimeWithoutAmPm(date,showSeconds){return getDisplayTime(date,showSeconds).replace("am","").replace("pm","").trim()}function setDisplayTime(elem,ms){let html;ms&&(html=getDisplayTimeWithoutAmPm(new Date(ms))),elem.innerHTML=html||""}function getDisplayPercentByTimeOfDay(startDateMs,programRuntimeMs,currentTimeMs){return(currentTimeMs-startDateMs)/programRuntimeMs*100}function getStep(runtimeTicks){let step=1e7*(layoutManager.tv?10:1)/runtimeTicks*100;return step=step.toFixed(3),step=Math.max(.01,step),step=Math.min(1,step)}function updateTimeText(instance,elem,ticks){if(null==ticks)elem.innerHTML="";else if(isNaN(ticks))elem.innerHTML="";else{let html=datetime.getDisplayRunningTime(ticks);var ticks=instance.repeatingPositionSliderKey,speed=instance.repeatingPositionSliderKeySpeed;switch(ticks){case"stepdown":html='<i class="md-icon md-icon-fill autortl button-icon-left" style="font-size:170%;"></i>'+html,1!==speed&&(html='<div class="button-icon-left">'+speed+"</div>"+html);break;case"stepup":html='<div style="min-width:3.5ch;">'+html+"</div>",html+='<i class="md-icon md-icon-fill autortl button-icon-right" style="font-size:170%;"></i>',1!==speed&&(html+='<div class="button-icon-right">'+speed+"</div>")}elem.innerHTML=html}}let DefaultSpeed=1;function setDefaultSpeed(instance){instance.repeatingPositionSliderKeySpeed=DefaultSpeed}function onIntervalPositionSlider(){var slider=this.options.nowPlayingPositionSlider,key=this.repeatingPositionSliderKey,speed=this.repeatingPositionSliderKeySpeed,sliderMin=slider.min,sliderMax=slider.max,stepMultiplier=[1,3,6,12,18][speed-1];switch(key){case"stepdown":this.nowPlayingSliderValue=Math.min(Math.max(this.nowPlayingSliderValue-stepMultiplier*convertMsToNowPlayingSliderStep(this,1e3),sliderMin),sliderMax);break;case"stepup":this.nowPlayingSliderValue=Math.min(Math.max(this.nowPlayingSliderValue+stepMultiplier*convertMsToNowPlayingSliderStep(this,1e3),sliderMin),sliderMax);break;default:return}console.log("onIntervalPositionSlider, key: "+key+", speed: "+speed),this.nowPlayingSliderValue<=sliderMin?(this.nowPlayingSliderValue=sliderMin,slider.endEditing(!0,sliderMin)):this.nowPlayingSliderValue>=sliderMax?(this.nowPlayingSliderValue=sliderMax,slider.endEditing(!0,sliderMax)):slider.beginEditing(this.nowPlayingSliderValue)}function clearIncrementIntervalForPositionSlider(instance){instance.intervalForPositionSlider&&(clearInterval(instance.intervalForPositionSlider),instance.intervalForPositionSlider=null)}function startIncrementIntervalForPositionSlider(instance){instance.intervalForPositionSlider||(setDefaultSpeed(instance),instance.intervalForPositionSlider=setInterval(instance.bound_intervalForPositionSlider,100))}function convertMsToNowPlayingSliderStep(instance,ms){var runtimeTicks=instance.nowPlayingSliderRunTimeTicks;return runtimeTicks?1e4*ms/runtimeTicks*100:(ms=instance.options.nowPlayingPositionSlider,parseFloat(ms.step))}function cancelPositionSliderEditing(instance){instance.options.nowPlayingPositionSlider.cancelEditing()}function onPositionSliderBeginEditing(e){console.log("onPositionSliderBeginEditing");this.ignoreStepKeyUp=!1,startIncrementIntervalForPositionSlider(this)}function onPositionSliderEndEditing(e){console.log("onPositionSliderEndEditing");this.repeatingPositionSliderKey=null,setDefaultSpeed(this),clearIncrementIntervalForPositionSlider(this)}function onPositionSliderKeyDown(e){var slider=e.target;switch(keyboardManager.normalizeKeyFromEvent(e)){case" ":case"Enter":slider.dragging&&(e.preventDefault(),e.stopPropagation(),slider.endEditing(!0,this.nowPlayingSliderValue))}}function onPositionSliderKeyUp(e){var slider=e.target,e=keyboardManager.normalizeKeyFromEvent(e);let stepUpCommand,stepDownCommand;stepDownCommand="rtl"===document.dir?(stepUpCommand="ArrowLeft","ArrowRight"):(stepUpCommand="ArrowRight","ArrowLeft");var ignoreStepKeyUp=this.ignoreStepKeyUp,wasRepeating=(console.log("onPositionSliderKeyUp, repeatingPositionSliderKey: "+this.repeatingPositionSliderKey+", ignoreStepKeyUp: "+ignoreStepKeyUp),this.repeatingPositionSliderKey);switch(e){case"MediaRewind":case stepDownCommand:wasRepeating||ignoreStepKeyUp||(this.nowPlayingSliderValue=Math.min(Math.max(this.nowPlayingSliderValue-convertMsToNowPlayingSliderStep(this,userSettings.skipBackLength()),slider.min),slider.max),slider.endEditing(!0,this.nowPlayingSliderValue)),this.ignoreStepKeyUp=!1;break;case"MediaFastForward":case stepUpCommand:wasRepeating||ignoreStepKeyUp||(this.nowPlayingSliderValue=Math.min(Math.max(this.nowPlayingSliderValue+convertMsToNowPlayingSliderStep(this,userSettings.skipForwardLength()),slider.min),slider.max),slider.endEditing(!0,this.nowPlayingSliderValue)),this.ignoreStepKeyUp=!1}}function onPositionSliderInput(e){onPositionSliderEndEditing.call(this,e)}function changeSpeed(instance,slider,direction){if(slider.dragging){var currentDirection=instance.repeatingPositionSliderKey;if(currentDirection){let speedOffset;speedOffset=currentDirection===direction?1:-1;currentDirection=instance.repeatingPositionSliderKeySpeed,direction=Math.max(0,Math.min(4,currentDirection+speedOffset));direction<=DefaultSpeed-1&&direction!==currentDirection?(instance.ignoreStepKeyUp=!0,slider.endEditing(!0,instance.nowPlayingSliderValue)):instance.repeatingPositionSliderKeySpeed=direction}}}function beginOrEndEditing(instance,slider,newValue,positionSliderKey){var sliderMin=slider.min,sliderMax=slider.max;newValue<=sliderMin?(instance.nowPlayingSliderValue=sliderMin,slider.endEditing(!0,sliderMin)):sliderMax<=newValue?(instance.nowPlayingSliderValue=sliderMax,slider.endEditing(!0,sliderMax)):(instance.repeatingPositionSliderKey!==positionSliderKey&&setDefaultSpeed(instance),instance.repeatingPositionSliderKey=positionSliderKey,slider.beginEditing(instance.nowPlayingSliderValue))}function onPositionSliderInputCommand(e){var sliderMin,sliderMax,slider=e.target;let stepUpCommand,stepDownCommand;switch(stepDownCommand="rtl"===document.dir?(stepUpCommand="left","right"):(stepUpCommand="right","left"),e.detail.command){case stepDownCommand:case"rewind":{e.preventDefault();let beginEditing=e.detail.repeat;(beginEditing=e.detail?.commandOptions?.fromPressedEvent?!slider.dragging:beginEditing)?(sliderMin=slider.min,sliderMax=slider.max,beginOrEndEditing(this,slider,Math.min(Math.max(this.nowPlayingSliderValue-convertMsToNowPlayingSliderStep(this,1e3),sliderMin),sliderMax),"stepdown")):changeSpeed(this,slider,"stepdown")}break;case stepUpCommand:case"fastforward":{e.preventDefault();let beginEditing=e.detail.repeat;if(beginEditing=e.detail?.commandOptions?.fromPressedEvent?!slider.dragging:beginEditing){let sliderMin=slider.min,sliderMax=slider.max,newValue=Math.min(Math.max(this.nowPlayingSliderValue+convertMsToNowPlayingSliderStep(this,1e3),sliderMin),sliderMax);beginOrEndEditing(this,slider,newValue,"stepup")}else changeSpeed(this,slider,"stepup")}break;case"pageup":e.preventDefault(),playbackManager.nextChapter(this.currentPlayer);break;case"pagedown":e.preventDefault(),playbackManager.previousChapter(this.currentPlayer);break;case"back":slider.dragging&&e.preventDefault(),cancelPositionSliderEditing(this);break;case"play":case"playpause":case"pause":slider.dragging&&(e.preventDefault(),e.stopPropagation(),slider.endEditing(!0,this.nowPlayingSliderValue));break;case"select":slider.dragging?(e.preventDefault(),e.stopPropagation(),slider.endEditing(!0,this.nowPlayingSliderValue)):playbackManager.playPause(this.currentPlayer)}}function onPositionSliderChange(e){var startDateMs,e=e.target,player=this.currentPlayer,e=parseFloat(e.value);this.enableProgressByTimeOfDay?(startDateMs=this.visualStartDateMs,startDateMs=1e4*((this.visualEndDateMs-startDateMs)*(e/100)+startDateMs-this.wallClockStartTimeMs),playbackManager.seek(startDateMs,player)):playbackManager.seekPercent(e,player)}function onSliderDisplayValueUpdate(e){var currentRuntimeTicks,e=e.detail.value;this.enableProgressByTimeOfDay||(currentRuntimeTicks=this.nowPlayingSliderRunTimeTicks)&&updateTimeText(this,this.options.positionTextElem,currentRuntimeTicks/100*e)}function OsdController(options){this.options=options,this.visualStartDateMs=0,this.visualEndDateMs=0,this.wallClockStartTimeMs=0,this.nowPlayingSliderValue=0;var nowPlayingPositionSlider=options.nowPlayingPositionSlider,nowPlayingPositionSlider=(inputManager.on(nowPlayingPositionSlider,onPositionSliderInputCommand.bind(this)),nowPlayingPositionSlider.addEventListener("keydown",onPositionSliderKeyDown.bind(this)),nowPlayingPositionSlider.addEventListener("keyup",onPositionSliderKeyUp.bind(this)),nowPlayingPositionSlider.addEventListener("input",onPositionSliderInput.bind(this)),nowPlayingPositionSlider.addEventListener("beginediting",onPositionSliderBeginEditing.bind(this)),nowPlayingPositionSlider.addEventListener("endediting",onPositionSliderEndEditing.bind(this)),nowPlayingPositionSlider.addEventListener("displayvaluechange",onSliderDisplayValueUpdate.bind(this)),dom.addEventListener(nowPlayingPositionSlider,"change",onPositionSliderChange.bind(this),{passive:!0}),this.bound_intervalForPositionSlider=onIntervalPositionSlider.bind(this),setDefaultSpeed(this),options.positionTextElem);nowPlayingPositionSlider&&(nowPlayingPositionSlider.style.height="1.7em")}function updatePositionSliderDisabled(instance,state){var playState,nowPlayingPositionSlider=instance.options.nowPlayingPositionSlider;nowPlayingPositionSlider&&!nowPlayingPositionSlider.dragging&&(playState=state.PlayState||{},nowPlayingPositionSlider.disabled=!0===state.IsInitialRequest||!playState.CanSeek||instance.disablePositionSlider)}function shouldEnableProgressByTimeOfDay(item,mediaSource){return!("TvChannel"!==item.Type||!item.CurrentProgram||!mediaSource||mediaSource.RunTimeTicks)||!(!("Recording"===item.Type&&item.StartDate&&item.EndDate&&mediaSource)||mediaSource.RunTimeTicks)}function getDisplayItem(item,currentDisplayItem){return item.Id?currentDisplayItem&¤tDisplayItem.Id===item.Id?Promise.resolve({originalItem:item,displayItem:currentDisplayItem.CurrentProgram||currentDisplayItem}):(currentDisplayItem=connectionManager.getApiClient(item.ServerId)).getItem(currentDisplayItem.getCurrentUserId(),item.Id,{ExcludeFields:"VideoChapters,VideoMediaSources,MediaStreams"}).then(function(refreshedItem){return{originalItem:item,displayItem:refreshedItem.CurrentProgram||refreshedItem}}):Promise.resolve({originalItem:item})}function getChaptersForDisplay(chapters){var list=[];for(let i=0,length=chapters.length;i<length;i++){var chapter=chapters[i];chapter.MarkerType&&"Chapter"!==chapter.MarkerType||list.push(chapter)}return list}function initChapterList(chapters,displayItem,mediaSource){var videoStream=((mediaSource||{}).MediaStreams||[]).filter(function(i){return"Video"===i.Type})[0]||{};let aspect=null;videoStream.Width&&videoStream.Height&&(aspect=videoStream.Width/videoStream.Height);for(let i=0,length=chapters.length;i<length;i++){var chapter=chapters[i];chapter.ServerId=displayItem.ServerId,chapter.MediaType=displayItem.MediaType,chapter.PrimaryImageAspectRatio=aspect,null==chapter.ItemId&&(chapter.ItemId=displayItem.Id),chapter.MediaSourceId=mediaSource.Id,chapter.Type="Chapter",chapter.Id="chapter_"+chapter.ItemId+"_"+chapter.StartPositionTicks,null==chapter.ChapterIndex&&(chapter.ChapterIndex=i)}}function getImgUrl(itemId,mediaSourceId,thumbnail,maxWidth,apiClient){return thumbnail.ImageTag?apiClient.getImageUrl(itemId,{maxWidth:maxWidth,tag:thumbnail.ImageTag,type:"Thumbnail",PositionTicks:thumbnail.PositionTicks,MediaSourceId:mediaSourceId}):null}function getThumbnailBubbleHtml(nowPlayingPositionSlider,enableProgressByTimeOfDay,apiClient,itemId,mediaSourceId,thumbnailSet,chapters,positionTicks,maxThumbnailWidth){let thumbnail;var thumbnails=(thumbnailSet=thumbnailSet||{}).Thumbnails||{},bubbleElement=nowPlayingPositionSlider.getBubbleElement();thumbnails.length?(bubbleElement.classList.add("chapterThumbImageContainer"),thumbnailSet.AspectRatio&&thumbnailSet.AspectRatio<1.4?bubbleElement.classList.add("chapterThumbImageContainer-fourthree"):bubbleElement.classList.remove("chapterThumbImageContainer-fourthree"),bubbleElement.classList.remove("chapterThumbImageContainer-noimg")):(bubbleElement.classList.remove("chapterThumbImageContainer","chapterThumbImageContainer-fourthree"),bubbleElement.classList.add("chapterThumbImageContainer-noimg")),layoutManager.tv?bubbleElement.classList.add("chapterThumbImageContainer-tv"):bubbleElement.classList.remove("chapterThumbImageContainer-tv");for(let i=0,length=thumbnails.length;i<length;i++){var currentThumbnail=thumbnails[i];if(positionTicks>=currentThumbnail.PositionTicks)thumbnail=currentThumbnail;else if(thumbnail)break}let chapter;for(let i=0,length=chapters.length;i<length;i++){var currentChapter=chapters[i];if(positionTicks>=currentChapter.StartPositionTicks)chapter=currentChapter;else if(chapter)break}chapter=chapter||{Name:" "};thumbnailSet=thumbnail?getImgUrl(itemId,mediaSourceId,thumbnail,maxThumbnailWidth,apiClient):null;let html="",textContainerClass="chapterThumbTextContainer";thumbnailSet||(textContainerClass+=" chapterThumbTextContainer-noimg"),nowPlayingPositionSlider.getBubbleElement().style.backgroundImage=thumbnailSet?"url('"+thumbnailSet+"')":null;bubbleElement=enableProgressByTimeOfDay||!layoutManager.tv;return html=(html=html+('<div class="'+textContainerClass+'">')+'<div class="chapterThumbText">')+(chapter?dom.htmlEncode(chapter.Name):" ")+"</div>",bubbleElement&&(html=(html+=thumbnailSet?'<div class="chapterThumbText">':'<div class="chapterThumbText secondaryText">')+datetime.getDisplayRunningTime(positionTicks)+"</div>"),html+="</div>"}function getCurrentItemThumbnailsPromise(instance,itemId,mediaSourceId,apiClient,maxThumbnailWidth){return instance.currentItemThumbnailsPromise||(apiClient=apiClient.getThumbnails(itemId,{MediaSourceId:mediaSourceId,Width:maxThumbnailWidth}).then(function(result){return instance.currentItemThumbnails=result,Promise.resolve(result)},function(){instance.currentItemThumbnailsPromise=null}),instance.currentItemThumbnailsPromise=apiClient)}function refreshThumbnailsIfNeeded(instance,item,mediaSourceId,apiClient,maxThumbnailWidth){!item.Id||"Audio"===item.MediaType||instance.currentItemThumbnails||instance.currentItemThumbnailsPromise||getCurrentItemThumbnailsPromise(instance,item.Id,mediaSourceId,apiClient,maxThumbnailWidth)}OsdController.prototype.updatePlayerState=function(event,player,state){var nowPlayingPositionSlider=this.options.nowPlayingPositionSlider,isProgressClear=(updatePositionSliderDisabled(this,state),state.MediaSource&&null==state.MediaSource.RunTimeTicks);nowPlayingPositionSlider.setIsClear(isProgressClear),state.MediaSource?.WallClockStart&&(nowPlayingPositionSlider=datetime.parseISO8601Date(state.MediaSource.WallClockStart),console.log("wall clock start: "+nowPlayingPositionSlider),this.wallClockStartTimeMs=nowPlayingPositionSlider.getTime(),this.visualStartDateMs=Math.min(this.visualStartDateMs||this.wallClockStartTimeMs,this.wallClockStartTimeMs||this.visualStartDateMs)),this.updateNowPlayingInfo(event,player,state)},OsdController.prototype.updateNowPlayingInfo=function(event,player,state){this.currentItemThumbnailsPromise=null,this.currentItemThumbnails=null;var item=state.NowPlayingItem,options=(this.currentItem=item,this.options),options=options.nowPlayingPositionSlider;if(item){this.currentMediaSource=state.MediaSource,this.enableProgressByTimeOfDay=shouldEnableProgressByTimeOfDay(item,state.MediaSource),options.setForceDisplayThumb(this.enableProgressByTimeOfDay),this.enableProgressByTimeOfDay?options.getTrackBackgroundUpper().classList.add("emby-slider-background-upper-accent"):options.getTrackBackgroundUpper().classList.remove("emby-slider-background-upper-accent");let instance=this;getDisplayItem(item,this.currentDisplayItem).then(function(itemInfo){var item=itemInfo.originalItem,itemInfo=(instance.currentItem=item,itemInfo.displayItem||item);instance.currentDisplayItem=itemInfo,events.trigger(instance,"displayitemupdated",[item,itemInfo,state]),instance.updateDisplayItem(state,item,itemInfo)})}else options.disabled=!0,this.enableProgressByTimeOfDay=!1,this.currentChapters=null,this.currentDisplayChapters=null,this.currentDisplayItem=null,this.currentMediaSource=null,events.trigger(this,"displayitemupdated",[item,null,state])},OsdController.prototype.updateDisplayItem=function(state,item,displayItem){this.currentChapters=item.Chapters||displayItem.Chapters||[],initChapterList(this.currentChapters,this.currentDisplayItem,this.currentMediaSource),this.currentDisplayChapters=getChaptersForDisplay(this.currentChapters),this.currentItemThumbnailsPromise=null,this.currentItemThumbnails=null,updatePositionSliderDisabled(this,state),this.enableProgressByTimeOfDay?(item=displayItem.StartDate?datetime.parseISO8601Date(displayItem.StartDate).getTime():0,this.visualStartDateMs=Math.min(item||this.wallClockStartTimeMs,this.wallClockStartTimeMs||item),this.visualEndDateMs=displayItem.EndDate?datetime.parseISO8601Date(displayItem.EndDate).getTime():0):(this.visualStartDateMs=0,this.visualEndDateMs=0)},OsdController.prototype.onPlayerTimeUpdate=function(positionTicks,runtimeTicks,seekableRanges){var wallClockStartTimeMs,visualEndDateMs,currentTimeMs,visualStartDateMs,seekRuntimeMs,options=this.options,nowPlayingPositionSlider=options.nowPlayingPositionSlider,enableProgressByTimeOfDay=this.enableProgressByTimeOfDay,positionTextElem=options.positionTextElem,options=options.durationTextElem;enableProgressByTimeOfDay?nowPlayingPositionSlider&&!nowPlayingPositionSlider.dragging&&(wallClockStartTimeMs=this.wallClockStartTimeMs,visualStartDateMs=this.visualStartDateMs,visualEndDateMs=this.visualEndDateMs,(visualStartDateMs=visualStartDateMs)&&visualEndDateMs?(currentTimeMs=wallClockStartTimeMs+(positionTicks||0)/1e4,seekRuntimeMs=visualEndDateMs-visualStartDateMs,setDisplayTime(positionTextElem,visualStartDateMs),options&&setDisplayTime(options,visualEndDateMs),this.nowPlayingSliderRunTimeTicks=1e4*seekRuntimeMs,nowPlayingPositionSlider.step=getStep(this.nowPlayingSliderRunTimeTicks),this.nowPlayingSliderValue=getDisplayPercentByTimeOfDay(visualStartDateMs,seekRuntimeMs,currentTimeMs),nowPlayingPositionSlider.setValue(this.nowPlayingSliderValue),seekableRanges.length?(visualEndDateMs=getDisplayPercentByTimeOfDay(visualStartDateMs,seekRuntimeMs,wallClockStartTimeMs+(seekableRanges[0].start||0)/1e4),currentTimeMs=getDisplayPercentByTimeOfDay(visualStartDateMs,seekRuntimeMs,wallClockStartTimeMs+(seekableRanges[0].end||0)/1e4),nowPlayingPositionSlider.setSeekRanges([{start:visualEndDateMs,end:currentTimeMs}])):nowPlayingPositionSlider.setSeekRanges([])):(nowPlayingPositionSlider.step=.01,this.nowPlayingSliderRunTimeTicks=null,this.nowPlayingSliderValue=0,nowPlayingPositionSlider.setValue(0),nowPlayingPositionSlider.setSeekRanges([]))):(this.nowPlayingSliderRunTimeTicks=runtimeTicks,nowPlayingPositionSlider&&!nowPlayingPositionSlider.dragging&&(runtimeTicks?(visualStartDateMs=positionTicks/runtimeTicks,visualStartDateMs*=100,nowPlayingPositionSlider.step=getStep(runtimeTicks),this.nowPlayingSliderValue=visualStartDateMs,nowPlayingPositionSlider.setValue(visualStartDateMs),options&&(!(seekRuntimeMs=this.currentMediaSource)||seekRuntimeMs.RunTimeTicks?updateDurationText(options,enableProgressByTimeOfDay,runtimeTicks-positionTicks,this.currentDisplayItem,!0):updateDurationText(options,enableProgressByTimeOfDay,runtimeTicks,this.currentDisplayItem,!1))):(nowPlayingPositionSlider.step=.01,this.nowPlayingSliderValue=0,nowPlayingPositionSlider.setValue(0),options&&updateDurationText(options,enableProgressByTimeOfDay,runtimeTicks,this.currentDisplayItem))),nowPlayingPositionSlider&&nowPlayingPositionSlider.setSeekRanges([]),nowPlayingPositionSlider?.dragging&&runtimeTicks||updateTimeText(this,positionTextElem,positionTicks))},OsdController.prototype.getPositionBubbleHtml=function(value,currentRuntimeTicks){var enableProgressByTimeOfDay=this.enableProgressByTimeOfDay;if(enableProgressByTimeOfDay)return(startDateMs=this.visualStartDateMs)&&this.visualEndDateMs?(ms=this.visualEndDateMs-startDateMs,ms=(ms/=100)*value+startDateMs,'<h3 class="sliderBubbleText">'+getDisplayTimeWithoutAmPm(new Date(parseInt(ms)),!0)+"</h3>"):"--:--";if(!currentRuntimeTicks)return"--:--";var startDateMs=currentRuntimeTicks,ms=(startDateMs=startDateMs/100*value,this.currentItem);if(ms&&this.options.enableSeekThumbnails){var currentRuntimeTicks=connectionManager.getApiClient(ms.ServerId),value=this.currentMediaSource.Id,thumbnails=(refreshThumbnailsIfNeeded(this,ms,value,currentRuntimeTicks,400),this.currentItemThumbnails),chapters=this.currentDisplayChapters||[],nowPlayingPositionSlider=this.options.nowPlayingPositionSlider;if(chapters.length){nowPlayingPositionSlider=getThumbnailBubbleHtml(nowPlayingPositionSlider,enableProgressByTimeOfDay,currentRuntimeTicks,ms.Id,value,thumbnails,chapters,startDateMs,400);if(nowPlayingPositionSlider)return nowPlayingPositionSlider}}return'<h2 class="sliderBubbleText">'+datetime.getDisplayRunningTime(startDateMs)+"</h2>"},OsdController.prototype.onPlaybackStart=function(e,state){cancelPositionSliderEditing(this)},OsdController.prototype.onPlaybackStopped=function(e,state){cancelPositionSliderEditing(this)},OsdController.prototype.bindToPlayer=function(player){this.currentPlayer=player},OsdController.prototype.releaseCurrentPlayer=function(){cancelPositionSliderEditing(this),this.currentPlayer=null},OsdController.prototype.destroy=function(){this.releaseCurrentPlayer(),this.currentItemThumbnailsPromise=null,this.currentItemThumbnails=null,this.currentChapters=null,this.currentDisplayChapters=null,this.currentItem=null,this.currentDisplayItem=null,this.currentMediaSource=null,this.options=null};export default OsdController; |