diff options
author | metamuffin <metamuffin@yandex.com> | 2022-01-23 16:34:57 +0100 |
---|---|---|
committer | metamuffin <metamuffin@yandex.com> | 2022-01-23 16:34:57 +0100 |
commit | 37fdcd78ba9b6bfc4db1369485129e160bb5f67a (patch) | |
tree | c976269a40ab32f00433320ad2cd909ac92e0d67 /source/client/user.ts | |
parent | be747eff67244a01cc6faab3bfb1b8731d146335 (diff) | |
download | keks-meet-37fdcd78ba9b6bfc4db1369485129e160bb5f67a.tar keks-meet-37fdcd78ba9b6bfc4db1369485129e160bb5f67a.tar.bz2 keks-meet-37fdcd78ba9b6bfc4db1369485129e160bb5f67a.tar.zst |
refactor part 2
Diffstat (limited to 'source/client/user.ts')
-rw-r--r-- | source/client/user.ts | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/source/client/user.ts b/source/client/user.ts index 4f458d6..4716d46 100644 --- a/source/client/user.ts +++ b/source/client/user.ts @@ -58,16 +58,29 @@ export abstract class User { create_track_element(t: TrackHandle) { const is_video = t.kind == "video" const media_el = is_video ? document.createElement("video") : document.createElement("audio") - media_el.srcObject = new MediaStream([t.track]) + const stream = new MediaStream([t.track]) + media_el.srcObject = stream media_el.classList.add("media") media_el.autoplay = true media_el.controls = true if (this.local) media_el.muted = true - this.el.append(media_el) + + const el = document.createElement("div") + if (t.local) { + const end_button = document.createElement("button") + end_button.textContent = "end track" + end_button.addEventListener("click", () => { + t.end() + }) + el.append(end_button) + } + el.append(media_el) + this.el.append(el) t.addEventListener("ended", () => { - media_el.remove() + media_el.srcObject = null + el.remove() }) } }
\ No newline at end of file |