VideoPlayer 视频播放器

支持清晰度切换与高级控制的视频播放器

何时使用

  • 需要播放视频内容时。

字幕标签等文案默认跟随全局语言(zh-CN / zh-TW / en-US)。

00:00 / 00:00

导入

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 控制

通过 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>

API

VideoPlayer Props

参数说明类型默认值
src视频播放地址string-
poster封面图string-
height高度string | number-
width宽度string | number-
autoPlay自动播放booleanfalse
loop循环播放booleanfalse
muted静音booleanfalse
volume默认音量 (0-100)number100
seekTime快进快退时间(秒)number10
clickToPlay点击播放booleantrue
theme主题dark | lightdark
controlsList菜单栏控件VideoControlsType[]全部
playbackRateList速率列表VideoPlaybackRate[]6 种速率
defaultPlaybackRate默认倍率number1
qualityList清晰度列表VideoQuality[]-
defaultQuality默认清晰度string-
routeList线路列表VideoRoute[]-
defaultRoute默认线路string-
markers章节标记VideoMarker[]-
captionsSrc字幕资源string-
crossOriginCORS 设置anonymous | use-credentials-

VideoPlayer Events

事件说明回调参数
play播放回调-
pause暂停回调-
ended播放结束-
qualityChange切换清晰度(quality: string)
routeChange切换线路(route: string)
rateChange切换速率(rate: number)
volumeChange调整音量(volume: number)

VideoPlayer Methods (ref)

方法说明参数
play播放-
pause暂停-
seek跳转(time: number)

VideoControlsType

可选值:play | time | volume | playbackRate | quality | route | mirror | fullscreen | pictureInPicture

VideoMarker

参数说明类型
start起始时间点(秒)number
title标题string

VideoQuality

参数说明类型
label显示名称string
valuestring

VideoPlaybackRate

参数说明类型
label显示名称string
value速率值number

键盘快捷键

按键功能
空格 / k播放/暂停
快退(seekTime 秒)
->快进(seekTime 秒)
音量增加
音量减少
f全屏切换
m静音切换