workadventure/front/src/Components/Video/LocalStreamMediaBox.svelte

34 lines
1 KiB
Svelte
Raw Normal View History

<script lang="typescript">
2022-01-05 10:27:40 +01:00
import { highlightedEmbedScreen } from "../../Stores/EmbedScreensStore";
import type { EmbedScreen } from "../../Stores/EmbedScreensStore";
2021-12-06 16:12:37 +01:00
import type { ScreenSharingLocalMedia } from "../../Stores/ScreenSharingStore";
2022-01-05 10:27:40 +01:00
import type { Streamable } from "../../Stores/StreamableCollectionStore";
2021-12-06 16:12:37 +01:00
import { srcObject } from "./utils";
2022-01-05 10:27:40 +01:00
export let clickable = false;
2021-12-06 16:12:37 +01:00
export let peer: ScreenSharingLocalMedia;
let stream = peer.stream;
2021-12-06 16:12:37 +01:00
export let cssClass: string | undefined;
2022-01-05 10:27:40 +01:00
let embedScreen: EmbedScreen;
if (stream) {
embedScreen = {
type: "streamable",
embed: stream as unknown as Streamable,
};
}
</script>
<div class="video-container {cssClass ? cssClass : ''}" class:hide={!stream}>
{#if stream}
2022-01-05 10:27:40 +01:00
<video
use:srcObject={stream}
autoplay
muted
playsinline
on:click={() => (clickable ? highlightedEmbedScreen.toggleHighlight(embedScreen) : null)}
/>
{/if}
</div>