diff --git a/packages/core/src/core/media/proxy.ts b/packages/core/src/core/media/proxy.ts index 77d7e769..1c2c825b 100644 --- a/packages/core/src/core/media/proxy.ts +++ b/packages/core/src/core/media/proxy.ts @@ -16,7 +16,7 @@ export const ProxyMixin = ( PrimaryClass: AnyConstructor, ...AdditionalClasses: AnyConstructor[] ) => { - class MediaProxy extends EventTarget { + class MediaProxy { #target: EventTarget | null = null; get target() { @@ -47,6 +47,26 @@ export const ProxyMixin = ( if (!this.#target) return; this.#target = null; } + + addEventListener( + type: string, + listener: EventListenerOrEventListenerObject, + options?: boolean | AddEventListenerOptions + ): void { + this.#target?.addEventListener(type, listener, options); + } + + removeEventListener( + type: string, + listener: EventListenerOrEventListenerObject, + options?: boolean | EventListenerOptions + ): void { + this.#target?.removeEventListener(type, listener, options); + } + + dispatchEvent(event: Event): boolean { + return this.#target?.dispatchEvent(event) ?? false; + } } for (const Class of [PrimaryClass, ...AdditionalClasses]) { diff --git a/packages/core/src/dom/media/native-hls/index.ts b/packages/core/src/dom/media/native-hls/index.ts index 2e1c4fd9..ef5a73a6 100644 --- a/packages/core/src/dom/media/native-hls/index.ts +++ b/packages/core/src/dom/media/native-hls/index.ts @@ -47,6 +47,14 @@ export class NativeHlsMediaDelegate extends EventTarget { attach(target: HTMLMediaElement) { this.#target = target; + + if (this.preload !== this.#target.preload) { + this.#target.preload = this.preload; + } + + if (this.src !== this.#target.src) { + this.#target.src = this.src; + } } detach() {