fix: ssr issue with hls.js (#758)

This commit is contained in:
Wesley Luyten
2026-03-06 11:22:55 -06:00
committed by GitHub
parent 7b6b3019df
commit bcc492f63f
2 changed files with 10 additions and 8 deletions
+7 -7
View File
@@ -14,30 +14,30 @@ const defaultConfig = {
};
export class HlsMediaDelegateBase implements MediaDelegate {
#engine = new Hls(defaultConfig);
#engine = Hls.isSupported() ? new Hls(defaultConfig) : null;
get engine(): Hls {
get engine(): Hls | null {
return this.#engine;
}
attach(target: EventTarget): void {
this.#engine.attachMedia(target as HTMLMediaElement);
this.#engine?.attachMedia(target as HTMLMediaElement);
}
detach(): void {
this.#engine.detachMedia();
this.#engine?.detachMedia();
}
destroy(): void {
this.#engine.destroy();
this.#engine?.destroy();
}
set src(src: string) {
this.#engine.loadSource(src);
this.#engine?.loadSource(src);
}
get src(): string {
return this.#engine.url ?? '';
return this.#engine?.url ?? '';
}
}
@@ -4,7 +4,7 @@ import type { CuesParsedData, NonNativeTextTracksData } from 'hls.js';
import Hls from 'hls.js';
interface HlsEngineHost {
readonly engine: Hls;
readonly engine: Hls | null;
attach?(target: EventTarget): void;
detach?(): void;
}
@@ -43,6 +43,8 @@ export function HlsMediaTextTracksMixin<Base extends Constructor<HlsEngineHost>>
const { signal } = this.#disconnect;
const { engine } = this;
if (!engine) return;
const media = this.#target!;
const onTracksFound = (_event: string, data: NonNativeTextTracksData) => {