diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-26 05:30:15 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-26 05:30:15 +0100 |
commit | 648248a1f21fca5cf86870209790b9de085b6639 (patch) | |
tree | 27a5a093e03ea956812258d61cc362a498db27b5 /web/script | |
parent | de39012c5b020a2b98c21fd3540dde9929ce8c71 (diff) | |
download | jellything-648248a1f21fca5cf86870209790b9de085b6639.tar jellything-648248a1f21fca5cf86870209790b9de085b6639.tar.bz2 jellything-648248a1f21fca5cf86870209790b9de085b6639.tar.zst |
player: enable one track of each kind
Diffstat (limited to 'web/script')
-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); |