diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-16 21:20:52 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-16 21:20:52 +0200 |
commit | 52b7bf7a052d2da6c71db7695dde73716cb0e4e5 (patch) | |
tree | bd582773a2d60e54286c450bc9595b398d76582d /client-web/source/resource | |
parent | a3cc9f8fb1bf45741b08ce6d383c4d7cc8ea8b1f (diff) | |
download | keks-meet-52b7bf7a052d2da6c71db7695dde73716cb0e4e5.tar keks-meet-52b7bf7a052d2da6c71db7695dde73716cb0e4e5.tar.bz2 keks-meet-52b7bf7a052d2da6c71db7695dde73716cb0e4e5.tar.zst |
optional streams (3, less bugs)
Diffstat (limited to 'client-web/source/resource')
-rw-r--r-- | client-web/source/resource/mod.ts | 2 | ||||
-rw-r--r-- | client-web/source/resource/track.ts | 18 |
2 files changed, 18 insertions, 2 deletions
diff --git a/client-web/source/resource/mod.ts b/client-web/source/resource/mod.ts index 3091a45..9583604 100644 --- a/client-web/source/resource/mod.ts +++ b/client-web/source/resource/mod.ts @@ -42,7 +42,7 @@ export abstract class Resource { } request_stop() { if (!(this.user instanceof RemoteUser)) return - this.user.send_to({ request: { id: this.info.id } }) + this.user.send_to({ request_stop: { id: this.info.id } }) } update_el() { diff --git a/client-web/source/resource/track.ts b/client-web/source/resource/track.ts index f58e020..bc26acc 100644 --- a/client-web/source/resource/track.ts +++ b/client-web/source/resource/track.ts @@ -24,12 +24,28 @@ export class TrackResource extends Resource { this.update_el() } + destroy() { + this.track?.end() + super.destroy() + } + create_preview(): HTMLElement { - return ebutton("Enable", { onclick: () => this.request() }) + return ebutton("Enable", { + onclick: (e) => { + (e as HTMLButtonElement).disabled = true; + this.request() + } + }) } create_element() { if (!this.track) { return this.create_preview() } const el = document.createElement("div") + el.append(ebutton("Disable", { + onclick: (e) => { + (e as HTMLButtonElement).disabled = true; + this.request_stop() + } + })) const is_video = this.track.kind == "video" const media_el = is_video ? document.createElement("video") : document.createElement("audio") |