@@ -20,7 +20,7 @@ $templateCache.put('streama-video-player.desktop.html','<div class="player-wrapp
2020$templateCache . put ( 'streama-video-player.episodeSelector.html' , '<div class="mobile-overlay-container mobile-episode-selector-container">\n <div class="mobile-episode-selector-season-tabs">\n <div class="mobile-episode-selector-season-tab" ng-class="{\'active\': season == options.selectedEpisodes[0].season_number}"\n ng-repeat="(season, episodes) in options.episodeList" ng-click="toggleSelectEpisodes(episodes)">\n <span>{{\'VIDEO.SEASON\' | translate}} {{season}}</span>\n </div>\n </div>\n\n <div class="mobile-episode-selector-outer">\n <div class="mobile-episode-selector-inner">\n <div class="mobile-episode-box" ng-repeat="episode in options.selectedEpisodes | orderBy:\'episode_number\'" ng-class="{\'active\': episode.id == options.currentEpisode.id}">\n <div class="image-wrapper">\n <i ng-if="episode.id != options.currentEpisode.id" class="play-button ion-ios-play" ng-click="changeEpisode(episode)"></i>\n <img ng-if="episode.still_path" ng-src="{{episode.still_path}}"/>\n <div ng-if="!episode.still_path" class="fallback-image"></div>\n </div>\n <h3>\n <span class="episode-number">{{episode.episode_number}}. </span>\n <span class="episode-name" ng-click="visible = !visible">{{episode.name}}</span>\n\n <span ng-if="episode.videoDuration" class="episode-duration">{{episode.videoDuration | videoDurationDisplay}}</span>\n </h3>\n <p class="episode-overview">{{episode.overview.length > 250 ? (episode.overview.substring(0, 250) + \'...\') : episode.overview}}</p>\n </div>\n </div>\n </div>\n\n \n</div>' ) ;
2121$templateCache . put ( 'streama-video-player.html' , '<div>\n <pre>{{playerTemplate}}</pre>\n <div ng-if="playerTemplate" ng-include="playerTemplate"></div>\n\n</div>\n\n' ) ;
2222$templateCache . put ( 'streama-video-player.touch.html' , '<div class="player-wrapper" ng-class="{\'mobile-controls-visible\': isMobileControlsVisible}">\n <pre>{{options.videoStillImage}}</pre>\n <div class="video-wrapper-inner" ng-style="getBackgroundStyle()" ng-click="toggleControls()">\n\n <div ng-if="loading">\n <i class="spinner ion-load-c" ></i>\n </div>\n\n <i ng-if="!playing && canplay" class="play-button ion-ios-play" ng-click="$event.stopPropagation();togglePlay()"></i>\n\n\n <div class="next-video-overlay" ng-if="isNextVideoShowing">\n <div class="row next-video-overlay-inner">\n <div class="col-xs-4">\n <streama-video-image video="options.nextVideo" type="poster" size="154"></streama-video-image>\n </div>\n <div class="col-xs-8">\n <h4>Up next...</h4>\n <h3>{{options.nextVideo.fullTitle}}</h3>\n <p>{{options.nextVideo.overview}}</p>\n\n <button class="play-button with-label" ng-click="next()"> <span class="play-label">play now</span> <i class="ion-ios-play"></i></button>\n </div>\n </div>\n </div>\n\n <div class="player-controls-mobile" ng-show="isMobileControlsVisible" >\n <div class="player-controls-topbar">\n <div class="player-controls-box player-control-button" ng-click="$event.stopPropagation(); closeVideo();">\n <i class="ion-close-round"></i>\n </div>\n <div class="player-controls-stretch player-controls-metaTitle">\n {{options.videoMetaTitle}}\n </div>\n\n <div class="player-controls-box player-control-button" ng-click="$event.stopPropagation(); toggleMobileOverlayBox(\'track\');">\n <i class="ion-android-textsms"></i>\n </div>\n\n <div ng-if="options.showEpisodeBrowser" class="player-controls-box player-control-button" ng-click="$event.stopPropagation(); toggleMobileOverlayBox(\'episode\')">\n <i class="ion-ios-browsers"></i>\n </div>\n <div ng-if="options.hasNextEpisode" class="player-controls-box player-control-button" ng-click="$event.stopPropagation(); next();">\n <i class="ion-ios-skipforward"></i>\n </div>\n\n </div>\n\n <div class="player-controls-bottombar" ng-if="initialPlay">\n <div class="player-controls-box player-control-button" ng-click="$event.stopPropagation();togglePlay()">\n <i class="player-play-pause play ion-play" ng-show="!playing"></i>\n <i class="player-play-pause play ion-pause" ng-show="playing"></i>\n </div>\n <div class="player-controls-box player-control-button" ng-click="$event.stopPropagation();replay(30)">\n <i class="icon-replay_30"></i>\n </div>\n <div class="player-controls-stretch">\n <rzslider ng-if="scrubber.options" rz-slider-model="scrubber.model" rz-slider-options="scrubber.options"></rzslider>\n </div>\n <div class="player-controls-box">\n <div class="time-display">\n <strong class="current-time">{{scrubber.model | streamaVideoTime}} | </strong>{{videoDuration | streamaVideoTime}}\n </div>\n </div>\n </div>\n </div>\n\n <div class="player-controls-mobile-overlay-box" ng-if="mobileOverlayBox.isVisble">\n <i class="ion-close player-controls-mobile-overlay-box-close" ng-click="toggleMobileOverlayBox()"></i>\n\n <div ng-include="\'streama-video-player.\' + mobileOverlayBox.type + \'Selector.html\'"></div>\n </div>\n\n <video ng-show="initialPlay" ng-if="isInitialized" id="video" ng-src="{{options.videoSrc | streamaTrustAs:\'resourceUrl\'}}" type="{{options.videoType}}"\n ng-click="clickVideo()" class="subtitle-size-{{options.subtitleSize}}">\n <track ng-repeat="subtitle in options.subtitles" ng-src="{{subtitle.src | streamaTrustAs:\'resourceUrl\'}}" kind="subtitles" id="subtitle-{{subtitle.id}}"\n srclang="{{subtitle.subtitleSrcLang}}" label="{{subtitle.subtitleLabel}}" src="{{subtitle.src | streamaTrustAs:\'resourceUrl\'}}">\n </video>\n\n </div>\n</div>\n\n\n' ) ;
23- $templateCache . put ( 'streama-video-player.trackSelector.html' , '<div class="mobile-overlay-container mobile-track-selector-container">\n\n <div class="row">\n <div class="col-50">\n <h2>{{\'VIDEO.SUBTITLES\' | translate}}</h2>\n <ul class="track-selector-list">\n <li class="track-selector-item" ng-class="{\'active\': !selectedSubtitleId}" ng-click="selectSubtitle()">\n {{\'VIDEO.NO_SUBTITLE\' | translate}} \n\n <i ng-if="!selectedSubtitleId" class="ion-checkmark"></i>\n </li>\n <li class="track-selector-item" ng-class="{\'active\': track.id == selectedSubtitleId}"\n ng-repeat="track in options.subtitles" ng-click="selectSubtitle(track)">\n {{track.subtitleLabel || track.originalFilename}}\n\n <i ng-if="track.id == selectedSubtitleId" class="ion-checkmark"></i>\n </li>\n </ul>\n </div>\n <div class="col-50">\n <h2>{{\'VIDEO.SUBTITLE_SIZE\' | translate}}</h2>\n <ul class="subtitle-size-picker">\n <li class="subtitle-size-lg" ng-class="{\'active\': options.subtitleSize == \'lg\'}" ng-click="changeSubtitleSize(\'lg\')">A</li>\n <li class="subtitle-size-md" ng-class="{\'active\': options.subtitleSize == \'md\'}" ng-click="changeSubtitleSize(\'md\')">A</li>\n <li class="subtitle-size-sm" ng-class="{\'active\': options.subtitleSize == \'sm\'}" ng-click="changeSubtitleSize(\'sm\')">A</li>\n </ul>\n </div>\n </div>\n\n\n\n</div>' ) ; } ] ) ;
23+ $templateCache . put ( 'streama-video-player.trackSelector.html' , '<div class="mobile-overlay-container mobile-track-selector-container">\n\n <div class="row">\n <div class="col-50">\n <h2>{{\'VIDEO.SUBTITLES\' | translate}}</h2>\n <ul class="track-selector-list">\n <li class="track-selector-item" ng-class="{\'active\': !selectedSubtitleId}" ng-click="selectSubtitle()">\n {{\'VIDEO.NO_SUBTITLE\' | translate}} \n\n <i ng-if="!selectedSubtitleId" class="ion-checkmark"></i>\n </li>\n <li class="track-selector-item" ng-class="{\'active\': track.id == selectedSubtitleId}"\n ng-repeat="track in options.subtitles" ng-click="selectSubtitle(track)">\n {{track.subtitleLabel || track.originalFilename}}\n\n <i ng-if="track.id == selectedSubtitleId" class="ion-checkmark"></i>\n </li>\n </ul>\n </div>\n <div class="col-50">\n <h2>{{\'VIDEO.SUBTITLE_SIZE\' | translate}}</h2>\n <ul class="subtitle-size-picker">\n <li class="subtitle-size-lg" ng-class="{\'active\': options.subtitleSize == \'lg\'}" ng-click="changeSubtitleSize(\'lg\')">A</li>\n <li class="subtitle-size-md" ng-class="{\'active\': options.subtitleSize == \'md\'}" ng-click="changeSubtitleSize(\'md\')">A</li>\n <li class="subtitle-size-sm" ng-class="{\'active\': options.subtitleSize == \'sm\'}" ng-click="changeSubtitleSize(\'sm\')">A</li>\n </ul>\n </div>\n <div class="col-50">\n <h2>{{\'VIDEO.VIDEO_FILES\' | translate}}</h2>\n <ul class="track-selector-list">\n <li class="track-selector-item" ng-class="{\'active\': isVideoFileSelected(track)}"\n ng-repeat="track in options.videoFiles" ng-click="selectVideoFile(track)">\n {{track.label || track.originalFilename}}\n\n\n <i ng-if="isVideoFileSelected(track)" class="ion-checkmark"></i>\n </li>\n </ul>\n </div>\n </div>\n\n\n\n</div>\n' ) ; } ] ) ;
2424//= wrapped
2525
2626angular . module ( 'streama.videoPlayer' ) . directive ( 'streamaVideoImage' , function ( ) {
@@ -73,6 +73,8 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
7373 $scope . getBackgroundStyle = getBackgroundStyle ;
7474 $scope . changeEpisode = changeEpisode ;
7575 $scope . selectSubtitle = selectSubtitle ;
76+ $scope . selectVideoFile = selectVideoFile ;
77+ $scope . isVideoFileSelected = isVideoFileSelected ;
7678 $scope . showControls = showControls ;
7779 $scope . toggleSelectEpisodes = toggleSelectEpisodes ;
7880 $scope . createNewPlayerSession = createNewPlayerSession ;
@@ -175,6 +177,20 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
175177 localStorageService . set ( 'selectedSubtitleLanguage' , _ . get ( subtitle , 'subtitleSrcLang' ) ) ;
176178 }
177179
180+ function selectVideoFile ( videoFile ) {
181+ $scope . initialPlay = false ;
182+ $scope . options . customStartingTime = video . currentTime ;
183+ $scope . options . selectedVideoFile = videoFile ;
184+ $scope . options . videoSrc = ( videoFile . src || videoFile . externalLink ) ;
185+ $scope . options . originalFilename = videoFile . originalFilename ;
186+ $scope . options . videoType = videoFile . contentType ;
187+ localStorageService . set ( 'selectedVideoFile' , videoFile . label ) ;
188+ }
189+
190+ function isVideoFileSelected ( videoFile ) {
191+ return _ . isEqualBy ( $scope . options . selectedVideoFile , videoFile , 'id' ) ;
192+ }
193+
178194 function getCurrentSubtitleTrack ( ) {
179195 return _ . find ( $scope . options . subtitles , { id : $scope . options . currentSubtitle } ) ;
180196 }
@@ -418,7 +434,7 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
418434 }
419435
420436
421- console . log ( 'TIME UPDATE at time: ' + video . currentTime ) ;
437+ // console.log('TIME UPDATE at time: ' + video.currentTime);
422438 }
423439
424440 function determineNextVideoShowing ( ) {
@@ -653,6 +669,7 @@ angular.module('streama.videoPlayer').factory('streamaVideoPlayerService', [
653669 videoType : '' ,
654670 videoTrack : '' ,
655671 subtitles : [ ] ,
672+ videoFiles : [ ] ,
656673 videoOverlayEnabled : true ,
657674 showEpisodeBrowser : false ,
658675 hasNextEpisode : false ,
0 commit comments