src/utils/mediakeys-helper.ts
/**
* @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess
*/
export enum KeySystems {
WIDEVINE = 'com.widevine.alpha',
PLAYREADY = 'com.microsoft.playready',
}
export type MediaKeyFunc = (
keySystem: KeySystems,
supportedConfigurations: MediaKeySystemConfiguration[]
) => Promise<MediaKeySystemAccess>;
const requestMediaKeySystemAccess = (function (): MediaKeyFunc | null {
if (
typeof self !== 'undefined' &&
self.navigator &&
self.navigator.requestMediaKeySystemAccess
) {
return self.navigator.requestMediaKeySystemAccess.bind(self.navigator);
} else {
return null;
}
})();
export { requestMediaKeySystemAccess };