diff options
Diffstat (limited to 'web/script/player')
-rw-r--r-- | web/script/player/player.ts | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/web/script/player/player.ts b/web/script/player/player.ts index 677dbc8..c5ceed0 100644 --- a/web/script/player/player.ts +++ b/web/script/player/player.ts @@ -10,6 +10,7 @@ import { SegmentDownloader } from "./download.ts"; import { PlayerTrack } from "./track.ts"; import { Logger } from "../jshelper/src/log.ts"; import { WatchedState } from "./jhls.d.ts"; +import { get_track_kind } from "./mediacaps.ts"; export interface BufferRange extends TimeRange { status: "buffered" | "loading" | "queued" } export class Player { @@ -105,8 +106,17 @@ export class Player { this.video.src = URL.createObjectURL(this.media_source) this.media_source.addEventListener("sourceopen", async () => { this.set_pers("Downloading track indecies...") - await this.set_track_enabled(0, true, false) - await this.set_track_enabled(1, true, false) + let video = false, audio = false, subtitles = false; + for (let i = 0; i < this.tracks!.length; i++) { + const t = this.tracks![i]; + const kind = get_track_kind(t.kind) + if (kind == "video" && !video) + video = true, await this.set_track_enabled(i, true, false) + if (kind == "audio" && !audio) + audio = true, await this.set_track_enabled(i, true, false) + if (kind == "subtitles" && !subtitles) + subtitles = true, await this.set_track_enabled(i, true, false) + } this.set_pers("Downloading initial segments...") const start_time = get_query_start_time() ?? get_continue_time(userdata.watched); |