Skip to content

Commit

Permalink
feat(FEC-10686): move startTime config from playback to sources (#398)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Ziv committed Jan 14, 2021
1 parent 0395ca7 commit bf909e0
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 28 deletions.
2 changes: 1 addition & 1 deletion docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -2312,7 +2312,7 @@ Loads a media.
### Parameters
- `mediaInfo` **ProviderMediaInfoObject** The media info.
- `mediaOptions` **KPLoadMediaOptions?** The media options.
- `mediaOptions` **PKSourcesConfigObject?** The media options.
### Examples
Expand Down
2 changes: 0 additions & 2 deletions flow-typed/types/load-media-options.js

This file was deleted.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"@babel/polyfill": "^7.0.0",
"@playkit-js/playkit-js": "0.67.0-canary.895f16b",
"@playkit-js/playkit-js-dash": "1.21.0",
"@playkit-js/playkit-js-hls": "1.22.0",
"@playkit-js/playkit-js-hls": "1.23.0-canary.b24f0fd",
"@playkit-js/playkit-js-ui": "0.62.0",
"hls.js": "^0.14.9",
"intersection-observer": "^0.12.0",
Expand Down
8 changes: 5 additions & 3 deletions src/common/cast/player-snapshot.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@ class PlayerSnapshot {
this.mediaConfig = player.getMediaConfig();
this.advertising = player.config.plugins && player.config.plugins.ima;
this.config = Utils.Object.mergeDeep({}, player.config, {
sources: {
startTime: getStartTime(player)
},
playback: {
startTime: getStartTime(player),
autoplay: player.currentTime === 0 ? true : !player.paused,
audioLanguage: getLanguage(TrackType.AUDIO, player),
textLanguage: getLanguage(TrackType.TEXT, player)
Expand All @@ -62,8 +64,8 @@ function getStartTime(player: KalturaPlayer): number {
} else {
return -1;
}
} else if (!player.isCasting() && !player.currentTime && player.config.playback.startTime > -1) {
return player.config.playback.startTime;
} else if (!player.isCasting() && !player.currentTime && player.config.sources.startTime > -1) {
return player.config.sources.startTime;
}
return player.currentTime;
}
Expand Down
17 changes: 10 additions & 7 deletions src/common/cast/remote-control.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,12 +135,12 @@ function onRemoteDeviceDisconnected(payload: RemoteDisconnectedPayload): void {
reconstructPlayerComponents.call(this, snapshot);
if (snapshot) {
this.dispatchEvent(new FakeEvent(CastEventType.CAST_SESSION_ENDED));
const originPlaybackConfig = this.config.playback;
const originConfig = this.config;
const shouldPause = !snapshot.config.playback.autoplay;
const mediaInfo = snapshot.mediaInfo;
const mediaConfig = snapshot.mediaConfig;
snapshot.config.playback.autoplay = true;
configurePlayback.call(this, snapshot.config.playback);
configurePlayback.call(this, snapshot.config);
this._eventManager.listenOnce(this, this.Event.Core.CHANGE_SOURCE_ENDED, () => {
configureTracks.call(this, snapshot.config.sources);
});
Expand All @@ -155,7 +155,7 @@ function onRemoteDeviceDisconnected(payload: RemoteDisconnectedPayload): void {
mediaPromise.then(() => {
this._eventManager.listenOnce(this, this.Event.Core.FIRST_PLAYING, () => {
this.textStyle = snapshot.textStyle;
configurePlayback.call(this, originPlaybackConfig);
configurePlayback.call(this, originConfig);
setInitialTracks.call(this, snapshot.config.playback);
if (shouldPause) {
this.pause();
Expand Down Expand Up @@ -202,7 +202,7 @@ function reconstructPlayerComponents(snapshot: PlayerSnapshot): void {
let imaConfig = {};
// If it's a VAST ad we are empty the ad tag so ads won't play and configure it later
if (playerConfig.cast.advertising && playerConfig.cast.advertising.vast) {
if (snapshot.config.playback.startTime > 0) {
if (snapshot.config.sources.startTime > 0) {
const adTagUrl = playerConfig.plugins.ima.adTagUrl;
imaConfig = {
adTagUrl: ''
Expand Down Expand Up @@ -230,11 +230,14 @@ function reconstructPlayerComponents(snapshot: PlayerSnapshot): void {
this._uiWrapper.setConfig({isCastAvailable: this.isCastAvailable()}, 'engine');
}

function configurePlayback(playbackConfig: Object): void {
const {autoplay, startTime} = playbackConfig;
function configurePlayback(config: Object): void {
const {startTime} = config.sources;
const {autoplay} = config.playback;
this.configure({
sources: {
startTime
},
playback: {
startTime,
autoplay
}
});
Expand Down
2 changes: 1 addition & 1 deletion src/common/controllers/ads-controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ class AdsController extends FakeEventTarget implements IAdsController {
}

_handleConfiguredAdBreaks(): void {
const playAdsAfterTime = this._player.config.advertising.playAdsAfterTime || this._player.config.playback.startTime;
const playAdsAfterTime = this._player.config.advertising.playAdsAfterTime || this._player.config.sources.startTime;
this._configAdBreaks = this._player.config.advertising.adBreaks
.filter(
adBreak =>
Expand Down
3 changes: 2 additions & 1 deletion src/common/utils/setup-helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,8 @@ function supportLegacyOptions(options: Object): PartialKPOptionsObject {
['playback.captionsTextTrack2Label', 'text.captionsTextTrack2Label'],
['playback.captionsTextTrack2LanguageCode', 'text.captionsTextTrack2LanguageCode'],
['plugins.visibility.threshold', 'viewability.playerThreshold'],
['plugins.visibility.floating', 'plugins.floating']
['plugins.visibility.floating', 'plugins.floating'],
['playback.startTime', 'sources.startTime']
];
removePlayerEntry();
moves.forEach(move => moveProp(move[0], move[1]));
Expand Down
10 changes: 2 additions & 8 deletions src/kaltura-player.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,14 @@ class KalturaPlayer extends FakeEventTarget {
/**
* Loads a media.
* @param {ProviderMediaInfoObject} mediaInfo - The media info.
* @param {KPLoadMediaOptions} [mediaOptions] - The media options.
* @param {PKSourcesConfigObject} [mediaOptions] - The media options.
* @returns {Promise<*>} - Promise which resolves when the media is loaded, or rejected if error occurs.
* @instance
* @memberof KalturaPlayer
* @example
* kalturaPlayer.loadMedia({entryId: 'entry123'}, {startTime: 5, poster: 'my/poster/url'});
*/
loadMedia(mediaInfo: ProviderMediaInfoObject, mediaOptions?: KPLoadMediaOptions): Promise<*> {
loadMedia(mediaInfo: ProviderMediaInfoObject, mediaOptions?: PKSourcesConfigObject): Promise<*> {
KalturaPlayer._logger.debug('loadMedia', mediaInfo);
this._mediaInfo = mediaInfo;
this.reset();
Expand All @@ -125,13 +125,7 @@ class KalturaPlayer extends FakeEventTarget {
(providerMediaConfig: ProviderMediaConfigObject) => {
const mediaConfig = Utils.Object.copyDeep(providerMediaConfig);
if (mediaOptions) {
mediaConfig.playback = mediaConfig.playback || {};
mediaConfig.sources = mediaConfig.sources || {};
const {startTime} = mediaOptions;
if (typeof startTime === 'number') {
mediaConfig.playback = Utils.Object.mergeDeep(mediaConfig.playback, {startTime});
delete mediaOptions.startTime;
}
mediaConfig.sources = Utils.Object.mergeDeep(mediaConfig.sources, mediaOptions);
}
const mergedPluginsConfigAndFromApp = mergeProviderPluginsConfig(mediaConfig.plugins, this.config.plugins);
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1135,10 +1135,10 @@
resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js-dash/-/playkit-js-dash-1.21.0.tgz#3c59d70576b9ffc6a9550faaeaae65c4673a4495"
integrity sha512-C2m0OW4c1eXZ+maTFXlttUaV4gy91CXG5SgBUz/D5r26gx1tbcrHP74PZatUG2zpDYpPkcERE0PKpJsYfE31ng==

"@playkit-js/playkit-js-hls@1.22.0":
version "1.22.0"
resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js-hls/-/playkit-js-hls-1.22.0.tgz#e587bd1c5424a0b2109ed9ddb7af0a9417a1a4af"
integrity sha512-dooEp75sqamcY1CBq1nKp0iVCyz0n763+7HKfeIoSpApzBvg9lyYQRyjy61mlIwY5k/GBAvk6GGf1gzvNUPTAQ==
"@playkit-js/playkit-js-hls@1.23.0-canary.b24f0fd":
version "1.23.0-canary.b24f0fd"
resolved "https://registry.yarnpkg.com/@playkit-js/playkit-js-hls/-/playkit-js-hls-1.23.0-canary.b24f0fd.tgz#00bfb1efe36b4ae311ef977434ad2e1771fec408"
integrity sha512-AMDnh7C6VKD5qMKkZetat5B0v1gfMwKeJd0ZtU32GS9S5ZVqIXXdZYLigAynSm1hePuZm+2GwCATFWA1aAcocg==

"@playkit-js/playkit-js-ui@0.62.0":
version "0.62.0"
Expand Down

0 comments on commit bf909e0

Please sign in to comment.