UNPKG

rx-player

Version:
34 lines (33 loc) 1.1 kB
import log from "../../log"; import sleep from "../../utils/sleep"; import shouldAwaitSetMediaKeys from "../should_await_set_media_keys"; /** * @param {Object} emeImplementation * @param {Object} mediaElement * @param {Object|null} mediaKeys * @returns {Promise} */ export function setMediaKeys(emeImplementation, mediaElement, mediaKeys) { const prom = emeImplementation .setMediaKeys(mediaElement, mediaKeys) .then(() => { log.info("DRM", "MediaKeys updated with success"); }) .catch((err) => { if (mediaKeys === null) { log.error("DRM", "Could not reset MediaKeys", err instanceof Error ? err : "Unknown Error"); return; } log.error("DRM", "Could not update MediaKeys", err instanceof Error ? err : "Unknown Error"); throw err; }); if (shouldAwaitSetMediaKeys()) { return prom; } return Promise.race([ prom, // Because we know how much EME has implementation issues, let's not block // everything because that API hangs sleep(1000), ]); }