events.trigger(self,"playbackstop",[{player:activePlayer,state:state,nextItem:newItem,nextMediaType:newItem.MediaType}])})})}functionbindStopped(player){enableLocalPlaylistManagement(player)&&(events.off(player,"stopped",onPlaybackStopped),events.on(player,"stopped",onPlaybackStopped))}functiononPlaybackTimeUpdate(e){varplayer=this;sendProgressUpdate(player,"timeupdate")}functiononPlaybackPause(e){varplayer=this;sendProgressUpdate(player,"pause")}functiononPlaybackUnpause(e){varplayer=this;sendProgressUpdate(player,"unpause")}functiononPlaybackVolumeChange(e){varplayer=this;sendProgressUpdate(player,"volumechange")}functiononRepeatModeChange(e){varplayer=this;sendProgressUpdate(player,"repeatmodechange")}functionunbindStopped(player){events.off(player,"stopped",onPlaybackStopped)}functioninitLegacyVolumeMethods(player){player.getVolume=function(){returnplayer.volume()},player.setVolume=function(val){returnplayer.volume(val)}}functioninitMediaPlayer(player){players.push(player),players.sort(function(a,b){return(a.priority||0)-(b.priority||0)}),player.isLocalPlayer!==!1&&(player.isLocalPlayer=!0),player.currentState={},player.getVolume&&player.setVolume||initLegacyVolumeMethods(player),enableLocalPlaylistManagement(player)&&(events.on(player,"error",onPlaybackError),events.on(player,"pause",onPlaybackPause),events.on(player,"timeupdate",onPlaybackTimeUpdate),events.on(player,"unpause",onPlaybackUnpause),events.on(player,"volumechange",onPlaybackVolumeChange),events.on(player,"repeatmodechange",onRepeatModeChange)),player.isLocalPlayer&&bindToFullscreenChange(player),bindStopped(player)}functionsendProgressUpdate(player,progressEventName){if(!player)thrownewError("player cannot be null");self.getPlayerState(player).then(function(state){if(state.NowPlayingItem){varserverId=state.NowPlayingItem.ServerId;reportPlayback(state,serverId,"reportPlaybackProgress",progressEventName)}})}varcurrentTargetInfo,lastLocalPlayer,currentPlayOptions,self=this,players=[],currentPairingId=null;this._playNextAfterEnded=!0;varplayerStates={};this._repeatMode="RepeatNone",this._playQueueManager=newPlayQueueManager,self.currentItem=function(player){if(!player)thrownewError("player cannot be null");vardata=getPlayerData(player);returndata.streamInfo?data.streamInfo.item:null},self.currentMediaSource=function(player){if(!player)thrownewError("player cannot be null");vardata=getPlayerData(player);returndata.streamInfo?data.streamInfo.mediaSource:null},self.getPlayerInfo=function(){varplayer=self._currentPlayer;if(!player)returnnull;vartarget=currentTargetInfo||{};return{name:player.name,isLocalPlayer:player.isLocalPlayer,id:target.id,deviceName:target.deviceName,playableMediaTypes:target.playableMediaTypes,supportedCommands:target.supportedCommands}},self.setActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name){if(self._currentPlayer&&self._currentPlayer.isLocalPlayer)return;returnvoidsetCurrentPlayerInternal(null,null)}if("string"==typeofplayer&&(player=players.filter(function(p){returnp.name===player})[0]),!player)thrownewError("null player");setCurrentPlayerInternal(player,targetInfo)},self.trySetActivePlayer=function(player,targetInfo){if("localplayer"===player||"localplayer"===player.name)returnvoid(self._currentPlayer&&self._currentPlayer.isLocalPlayer);if("string"==typeofplayer&&(player=players.filter(function(p){returnp.name===player})[0]),!player)thrownewError("null player");if(currentPairingId!==targetInfo.id){currentPairingId=targetInfo.id;varpromise=player.tryPair?player.tryPair(targetInfo):Promise.resolve();promise.then(function(){setCurrentPlayerInternal(player,targetInfo)},function(){currentPairingId===targetInfo.id&&(currentPairingId=null)})}},self.getTargets=function(){varpromises=players.filter(function(p){return!displayPlayerInLocalGroup(p)}).map(getPlayerTargets);returnPromise.all(promises).then(function(responses){vartargets=[];targets.push({name:globalize.translate("sharedcomponents#HeaderMyDevice"),id:"localplayer",playerName:"localplay