diff options
author | metamuffin <metamuffin@disroot.org> | 2024-03-16 18:26:36 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-03-16 18:26:36 +0100 |
commit | ae8bed70a17eaf8308486aa060cade89d283c6d8 (patch) | |
tree | 96c1a67a34fcf41cf61a8f6c5b72a01af4c038f0 /web/script/player/player.ts | |
parent | 6aeb71ffb5158fd05c956f5b9088e5082cbdbd7c (diff) | |
download | jellything-ae8bed70a17eaf8308486aa060cade89d283c6d8.tar jellything-ae8bed70a17eaf8308486aa060cade89d283c6d8.tar.bz2 jellything-ae8bed70a17eaf8308486aa060cade89d283c6d8.tar.zst |
player: show chapters
Diffstat (limited to 'web/script/player/player.ts')
-rw-r--r-- | web/script/player/player.ts | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/web/script/player/player.ts b/web/script/player/player.ts index 367ae04..3d35c49 100644 --- a/web/script/player/player.ts +++ b/web/script/player/player.ts @@ -9,7 +9,7 @@ import { NodePublic, NodeUserData, SourceTrack, TimeRange } from "./jhls.d.ts"; import { SegmentDownloader } from "./download.ts"; import { PlayerTrack } from "./track/mod.ts"; import { Logger } from "../jshelper/src/log.ts"; -import { WatchedState } from "./jhls.d.ts"; +import { WatchedState, Chapter } from "./jhls.d.ts"; import { get_track_kind } from "./mediacaps.ts"; import { create_track } from "./track/create.ts"; @@ -18,6 +18,7 @@ export class Player { public video = e("video") public media_source = new MediaSource(); public tracks?: SourceTrack[]; + public chapters = new OVar<Chapter[]>([]); public active_tracks = new OVar<PlayerTrack[]>([]); public downloader: SegmentDownloader = new SegmentDownloader(); @@ -113,9 +114,11 @@ export class Player { if (userdata.error) return this.set_pers("server error: " + metadata.error) this.set_pers() + //! bad code: assignment order is important because chapter callbacks use duration + this.duration.value = metadata.media!.duration + this.chapters.value = metadata.media!.chapters this.tracks = metadata.media!.tracks - this.duration.value = metadata.media!.duration this.video.src = URL.createObjectURL(this.media_source) this.media_source.addEventListener("sourceopen", async () => { this.set_pers("Downloading track indecies...") |