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, 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)); }