vue3<script setup>+typeScript视频播放(支持视频、m3u8直播流)
<template>
<video
ref="videoEl"
controls
autoplay
style="width: 100%; height: 100%"
></video>
</template>
<script setup lang="ts">
import Hls from 'hls.js';
const videoEl = ref<HTMLVideoElement | null>(null);
onMounted(() => {
if (videoEl.value) {
const video = videoEl.value;
if (Hls.isSupported()) {
const hls = new Hls();
hls.loadSource('https://your-m3u8-video-stream-url.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, () => {
video.play();
});
} else if ('src' in video) {
video.src = 'https://your-video-file-url.mp4';
}
}
});
onBeforeUnmount(() => {
if (videoEl.value) {
const video = videoEl.value;
if (video.pause) {
video.pause();
}
if (Hls.isSupported()) {
const hls = video['hls'];
if (hls) {
hls.destroy();
}
}
}
});
</script>
这个代码实例使用了Vue 3的 <script setup>
语法和TypeScript,同时展示了如何处理m3u8直播流和普通视频文件的播放。代码中包含了对直播流的HLS.js初始化和清理工作,以及对视频文件的处理。这个例子简洁明了,并且注重于实际的应用场景。
评论已关闭