index.vue
1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<script lang="ts" setup>
import { ComponentPropsConfigType, DataFetchUpdateFn } from '/@/views/visual/packages/index.type';
import { option } from './config';
import { useDataFetch } from '/@/views/visual/packages/hook/useSocket';
import { BasicVideoPlay } from '/@/components/Video';
import { computed } from 'vue';
import { VideoJsPlayerOptions } from 'video.js';
const props = defineProps<{
config: ComponentPropsConfigType<typeof option>;
}>();
const getOptions = computed<VideoJsPlayerOptions>(() => {
const { option } = props.config;
const { itemHeightRatio, itemWidthRatio, widthPx, heightPx } = option;
const currentW = widthPx * (itemWidthRatio / 100);
const currentH = heightPx * (itemHeightRatio / 100);
return {
width: currentW - 8,
height: currentH - 8,
sources: [
{
src: 'https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm',
},
],
};
});
const updateFn: DataFetchUpdateFn = (_message) => {};
useDataFetch(props, updateFn);
</script>
<template>
<main class="w-full h-full flex flex-col justify-center items-center p-2">
<BasicVideoPlay :options="getOptions" />
</main>
</template>