字幕标签等文案默认跟随全局语言(zh-CN / zh-TW / en-US)。
import { VideoPlayer } from "@reglow/reui";
通过 src 传入视频地址,通过 poster 传入封面图。
<script setup>
import { VideoPlayer } from "@reglow/reui";
const src = "https://example.com/video.mp4";
const poster = "https://example.com/poster.jpg";
</script>
<template>
<VideoPlayer
:src="src"
:poster="poster"
:height="360"
class="w-full"
/>
</template>
通过 controlsList 设置菜单栏的展示项。
<script setup>
const controlsList = ['play', 'time', 'volume', 'playbackRate', 'fullscreen'];
</script>
<template>
<VideoPlayer
:src="src"
:poster="poster"
:height="360"
:controls-list="controlsList"
class="w-full"
/>
</template>
通过 playbackRateList 设置速率选择列表。
<script setup>
const playbackRateList = [
{ label: "0.5x", value: 0.5 },
{ label: "1.0x", value: 1 },
{ label: "1.5x", value: 1.5 },
{ label: "2.0x", value: 2 },
];
</script>
<template>
<VideoPlayer
:src="src"
:poster="poster"
:height="360"
:playback-rate-list="playbackRateList"
class="w-full"
/>
</template>
通过 volume 设置初始音量(0-100),muted 静音。
<template>
<VideoPlayer :src="src" :poster="poster" :height="360" :volume="50" muted class="w-full" />
</template>
通过 qualityList 设置清晰度列表,defaultQuality 设置初始清晰度。
<script setup>
import { ref } from "vue";
const currentSrc = ref("https://example.com/video-1080p.mp4");
const qualityList = [
{ label: "1080p", value: "1080p" },
{ label: "720p", value: "720p" },
{ label: "480p", value: "480p" },
];
const onQualityChange = (quality) => {
currentSrc.value = `https://example.com/video-${quality}.mp4`;
};
</script>
<template>
<VideoPlayer
:src="currentSrc"
:poster="poster"
:height="360"
:quality-list="qualityList"
default-quality="1080p"
@quality-change="onQualityChange"
class="w-full"
/>
</template>
通过 markers 设置章节标记点。
<script setup>
const markers = [
{ start: 0, title: "片头" },
{ start: 4, title: "功能介绍" },
{ start: 38, title: "Figma Plugin" },
{ start: 51, title: "片尾" },
];
</script>
<template>
<VideoPlayer
:src="src"
:poster="poster"
:height="360"
:markers="markers"
class="w-full"
/>
</template>
通过 ref 获取组件实例,调用 play / pause / seek 方法。
<script setup>
import { ref } from "vue";
import { VideoPlayer } from "@reglow/reui";
const playerRef = ref();
const playAll = () => playerRef.value?.play();
const pauseAll = () => playerRef.value?.pause();
const seek = (time) => playerRef.value?.seek(time);
</script>
<template>
<VideoPlayer ref="playerRef" :src="src" :height="360" class="w-full" />
<div class="flex gap-2 mt-2">
<Button @click="playAll">播放</Button>
<Button @click="pauseAll">暂停</Button>
<Button @click="seek(30)">跳转到 30s</Button>
</div>
</template>
通过 theme 设置主题,captionsSrc 设置字幕资源。
<template>
<VideoPlayer
:src="src"
:poster="poster"
:height="360"
theme="light"
captions-src="/subtitle.vtt"
class="w-full"
/>
</template>
| 参数 | 说明 | 类型 | 默认值 |
|---|
| src | 视频播放地址 | string | - |
| poster | 封面图 | string | - |
| height | 高度 | string | number | - |
| width | 宽度 | string | number | - |
| autoPlay | 自动播放 | boolean | false |
| loop | 循环播放 | boolean | false |
| muted | 静音 | boolean | false |
| volume | 默认音量 (0-100) | number | 100 |
| seekTime | 快进快退时间(秒) | number | 10 |
| clickToPlay | 点击播放 | boolean | true |
| theme | 主题 | dark | light | dark |
| controlsList | 菜单栏控件 | VideoControlsType[] | 全部 |
| playbackRateList | 速率列表 | VideoPlaybackRate[] | 6 种速率 |
| defaultPlaybackRate | 默认倍率 | number | 1 |
| qualityList | 清晰度列表 | VideoQuality[] | - |
| defaultQuality | 默认清晰度 | string | - |
| routeList | 线路列表 | VideoRoute[] | - |
| defaultRoute | 默认线路 | string | - |
| markers | 章节标记 | VideoMarker[] | - |
| captionsSrc | 字幕资源 | string | - |
| crossOrigin | CORS 设置 | anonymous | use-credentials | - |
| 事件 | 说明 | 回调参数 |
|---|
| play | 播放回调 | - |
| pause | 暂停回调 | - |
| ended | 播放结束 | - |
| qualityChange | 切换清晰度 | (quality: string) |
| routeChange | 切换线路 | (route: string) |
| rateChange | 切换速率 | (rate: number) |
| volumeChange | 调整音量 | (volume: number) |
| 方法 | 说明 | 参数 |
|---|
| play | 播放 | - |
| pause | 暂停 | - |
| seek | 跳转 | (time: number) |
可选值:play | time | volume | playbackRate | quality | route | mirror | fullscreen | pictureInPicture
| 参数 | 说明 | 类型 |
|---|
| start | 起始时间点(秒) | number |
| title | 标题 | string |
| 参数 | 说明 | 类型 |
|---|
| label | 显示名称 | string |
| value | 值 | string |
| 参数 | 说明 | 类型 |
|---|
| label | 显示名称 | string |
| value | 速率值 | number |
| 按键 | 功能 |
|---|
| 空格 / k | 播放/暂停 |
| ← | 快退(seekTime 秒) |
| -> | 快进(seekTime 秒) |
| ↑ | 音量增加 |
| ↓ | 音量减少 |
| f | 全屏切换 |
| m | 静音切换 |