Skip to content

Commit c830ba9

Browse files
author
dularion
committed
fix wrong codec error for stateChanges
1 parent c3822c6 commit c830ba9

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

dist/streama-video-player.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ angular.module('streama.videoPlayer').run(['$templateCache', function($templateC
1919
$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>');
2020
$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');
2121
$templateCache.put('streama-video-player.touch.html','<div class="player-wrapper">\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 <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 <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');
22-
$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}} &nbsp;\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>');}]);
22+
$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}} &nbsp;\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>');}]);
2323
'use strict';
2424

2525
angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
@@ -116,6 +116,7 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
116116
initExternalTriggers();
117117
initIsMobile();
118118
$scope.$on('$destroy', onDirectiveDestroy);
119+
$scope.$on('$stateChangeStart', onStateChangeStart);
119120
$scope.$on('$stateChangeSuccess', onStateChangeSuccess);
120121
generateVolumeScrubberOptions();
121122

@@ -349,6 +350,10 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
349350
});
350351
}
351352

353+
function onStateChangeStart() {
354+
$scope.isStateChangeStarted = true;
355+
}
356+
352357
function onStateChangeSuccess(e, toState) {
353358
if(toState.name != "player"){
354359
//If full screen is enabled, it will be canceled.
@@ -364,7 +369,9 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
364369
Mousetrap.reset();
365370

366371
console.log("destroy");
367-
video.pause();
372+
if($scope.initialPlay){
373+
video.pause();
374+
}
368375
video.src = '';
369376
$elem.find('video').children('source').prop('src', '');
370377
$elem.find('video').remove().length = 0;
@@ -396,7 +403,7 @@ angular.module('streama.videoPlayer').directive('streamaVideoPlayer', [
396403
}
397404

398405
function onVideoError(){
399-
if(!video.duration && !$scope.initialPlay){
406+
if(!video.duration && !$scope.initialPlay && !$scope.isStateChangeStarted){
400407
console.error('Video Playback Error');
401408
$scope.options.onError();
402409
}

0 commit comments

Comments
 (0)