@playkit-js/kaltura-player-js
Version:
[](https://github.com/kaltura/kaltura-player-js/actions/workflows/run_canary.yaml) [ • 1.43 kB
text/typescript
import { Env, Utils, MediaType } from '@playkit-js/playkit-js';
import { getRedirectExternalStreamsHandler } from '../common/utils/external-stream-redirect-helper';
import { KalturaPlayerConfig } from '../types';
/**
* get the default config for forcing external stream redirect.
* @public
* @param {KalturaPlayerConfig} playerOptions - The player config.
* @param {KalturaPlayerConfig} mediaOptions - The media config.
* @returns {Object} - config object
*/
export function getDefaultRedirectOptions(playerOptions: Partial<KalturaPlayerConfig>, mediaOptions?: KalturaPlayerConfig): any {
const configObj = {};
if (mediaOptions?.sources?.type === MediaType.LIVE && (Env.browser.name === 'IE' || Env.device.model === 'Chromecast')) {
const playerForceRedirectExternalStreams = Utils.Object.getPropertyPath(playerOptions, 'sources.options.forceRedirectExternalStreams');
const mediaForceRedirectExternalStreams = Utils.Object.getPropertyPath(mediaOptions, 'sources.options.forceRedirectExternalStreams');
if (typeof playerForceRedirectExternalStreams !== 'boolean' && typeof mediaForceRedirectExternalStreams !== 'boolean') {
Utils.Object.mergeDeep(configObj, {
sources: {
options: {
forceRedirectExternalStreams: true
}
}
});
}
}
return Utils.Object.mergeDeep(configObj, getRedirectExternalStreamsHandler(playerOptions, mediaOptions));
}