From 292876fd95896abdf363b3f279afba9392b8f1cb Mon Sep 17 00:00:00 2001 From: Yair Ansbacher Date: Tue, 26 Jun 2018 16:32:31 +0300 Subject: [PATCH] fix(FEC-7971): change media doesn't work after a critical error (#135) reset the error state when loading a new media depends on kaltura/playkit-js-ui#249 --- src/common/ui-wrapper.js | 12 +++++++++++- src/kaltura-player.js | 8 ++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/common/ui-wrapper.js b/src/common/ui-wrapper.js index f4e830ca0..e4d5b8202 100644 --- a/src/common/ui-wrapper.js +++ b/src/common/ui-wrapper.js @@ -28,11 +28,21 @@ class UIWrapper { this._uiManager.setConfig(config, componentAlias); } - setErrorPresetConfig(mediaInfo: ProviderMediaInfoObject): void { + resetErrorConfig(mediaInfo: ProviderMediaInfoObject): void { + this._setErrorPresetConfig(mediaInfo); + this._resetErrorState(); + } + + _setErrorPresetConfig(mediaInfo: ProviderMediaInfoObject): void { if (this._disabled) return; this.setConfig({mediaInfo: mediaInfo}, 'error'); } + _resetErrorState(): void { + if (this._disabled) return; + this.setConfig({hasError: false}, 'engine'); + } + setSeekbarConfig(mediaConfig: ProviderMediaConfigObject): void { if (this._disabled) return; const seekbarConfig = Utils.Object.getPropertyPath(this._uiManager, 'config.components.seekbar'); diff --git a/src/kaltura-player.js b/src/kaltura-player.js index d5034081c..2f6c9cb60 100644 --- a/src/kaltura-player.js +++ b/src/kaltura-player.js @@ -42,9 +42,8 @@ export default class KalturaPlayer { loadMedia(mediaInfo: ProviderMediaInfoObject): Promise<*> { this._logger.debug('loadMedia', mediaInfo); - this._player.reset(); + this._reset(mediaInfo); this._player.loadingMedia = true; - this._uiWrapper.setErrorPresetConfig(mediaInfo); this._uiWrapper.setLoadingSpinnerState(true); return this._provider.getMediaConfig(mediaInfo) .then(mediaConfig => this.setMedia(mediaConfig)) @@ -77,4 +76,9 @@ export default class KalturaPlayer { set: undefined }; } + + _reset(mediaInfo: ProviderMediaInfoObject): void { + this._player.reset(); + this._uiWrapper.resetErrorConfig(mediaInfo); + } }