VidStack
大约 2 分钟
在 Markdown 文件中嵌入 VidStack。
使用本组件前,请先在你的项目中安装 vidstack@next 包:
pnpm
pnpm add -D vidstack@nextyarn
yarn add -D vidstack@nextnpm
npm i -D vidstack@next示例
视频播放器
<VidStack
src="https://files.vidstack.io/sprite-fight/720p.mp4"
poster="https://files.vidstack.io/sprite-fight/poster.webp"
/>有封面、章节、缩略图和字幕的播放器
<VidStack
title="Agent 327 Operation Barber Shop"
poster="https://files.vidstack.io/agent-327/poster.png"
:src="[
{
src: 'https://files.vidstack.io/agent-327/720p.mp4',
type: 'video/mp4',
},
{
src: 'https://files.vidstack.io/agent-327/720p.avi',
type: 'video/avi',
},
{
src: 'https://files.vidstack.io/agent-327/720p.ogv',
type: 'video/ogg',
},
]"
:tracks="[
{
src: 'https://files.vidstack.io/agent-327/subs/english.vtt',
label: 'English',
language: 'en-US',
kind: 'subtitles',
default: true,
},
{
src: 'https://files.vidstack.io/agent-327/subs/spanish.vtt',
label: 'Spanish',
language: 'es-ES',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/french.vtt',
label: 'French',
language: 'fr-FR',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/german.vtt',
label: 'German',
language: 'ge-GE',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/italian.vtt',
label: 'Italian',
language: 'it-IT',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/russian.vtt',
label: 'Russian',
language: 'ru-RU',
kind: 'subtitles',
},
// Chapters
{
src: 'https://files.vidstack.io/agent-327/chapters.vtt',
kind: 'chapters',
language: 'en-US',
default: true,
},
]"
thumbnails="https://files.vidstack.io/agent-327/thumbnails.vtt"
/>一个流式视频播放器
<VidStack
src="https://files.vidstack.io/sprite-fight/hls/stream.m3u8"
:tracks="[
{
src: 'https://files.vidstack.io/agent-327/subs/english.vtt',
label: 'English',
language: 'en-US',
kind: 'subtitles',
default: true,
},
{
src: 'https://files.vidstack.io/agent-327/subs/spanish.vtt',
label: 'Spanish',
language: 'es-ES',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/french.vtt',
label: 'French',
language: 'fr-FR',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/german.vtt',
label: 'German',
language: 'ge-GE',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/italian.vtt',
label: 'Italian',
language: 'it-IT',
kind: 'subtitles',
},
{
src: 'https://files.vidstack.io/agent-327/subs/russian.vtt',
label: 'Russian',
language: 'ru-RU',
kind: 'subtitles',
},
// Chapters
{
src: 'https://files.vidstack.io/agent-327/chapters.vtt',
kind: 'chapters',
language: 'en-US',
default: true,
},
]"
thumbnails="https://files.vidstack.io/agent-327/thumbnails.vtt"
/>一个音频播放器
<VidStack src="//theme-hope-assets.vuejs.press/files/sample.mp3" title="VidStack 示例音频" />YouTube 播放器
<VidStack
src="youtube/_cMxraX_5RE"
title="VidStack YouTube Demo"
/>Streaming
流式
VideoStack 支持流式视频,默认通过 jsdelivr CDN 加载 hls.js 和 dash.js 以支持的 HLS 和 DASH 流式传输。
由于 jsdelivr 在大陆很不稳定,你可以在项目中安装 hls.js 和 dash.js 以使用这些包的本地版本。
属性
src
类型:
PlayerSrctype PlayerSrc = MediaSrc | MediaSrc[]; type MediaSrc = | string | AudioSrc | VideoSrc | HLSSrc | DASHSrc | YouTubeSrc | VimeoSrc;必填: 是
视频源链接。
不支持相对路径。当填写路径名时,base 将自动添加到路径名的开头。
tracks
- 类型:
TextTrackInit[] - 必填: 否
视频/音频字幕和章节。
title
- 类型:
string - 必填: 否
音频/视频标题
poster
- 类型:
string - 必填: 否
视频封面 (不适用于音频)
thumbnails
- 类型:
string - 必填: 否
视频缩略图 (不适用于音频)
player
- 类型:
Omit<VidstackPlayerConfig, "target" | "src" | "sources" | "tracks"> - 必填: 否
VidStack 播放器选项
layout
- 类型:
Partial<DefaultLayoutProps> - 必填: 否
VidStack 布局选项
更新日志
2025/6/4 13:34
查看所有更新日志
1bd5f-于96c95-于9bd48-于2f66e-于3c27a-于fb6da-于0f844-于792dc-于757fd-于43072-于e728e-于5a136-于aa14c-于d3b16-于d82a8-于c887b-于6136a-于