screen sharing

This commit is contained in:
2025-12-27 01:48:49 +06:00
parent 47a464f08f
commit 169d43f0db
12 changed files with 291 additions and 119 deletions

View File

@@ -7,43 +7,11 @@
</template>
</PrimeCard>
</div>
<video
v-if="!!shareConsumer"
ref="shareVideo"
class="w-full aspect-video border border-surface-700 rounded mt-6 cursor-pointer"
autoplay
playsinline
@click="toFullscreen"
/>
</div>
</template>
<script setup lang="ts">
import { unrefElement } from '@vueuse/core'
definePageMeta({
name: 'Index',
})
const shareVideoRef = useTemplateRef('shareVideo')
const { consumers } = useMediasoup()
const shareConsumer = computed(() => {
return consumers.value.values().find(consumer => consumer.kind === 'video' && consumer.appData?.source === 'share')
})
watchEffect(() => {
if (!shareVideoRef.value || !shareConsumer.value)
return
const stream = new MediaStream([shareConsumer.value.track])
unrefElement(shareVideoRef)!.srcObject = stream
})
function toFullscreen() {
unrefElement(shareVideoRef)?.requestFullscreen()
}
</script>