Video

功能完整的视频播放器,原生与自定义控制条可切换。

最后更新

说明

默认使用浏览器原生控制条;Custom 为真时启用框架自绘控制条,含播放/暂停、可拖动进度、纵向音量弹层、倍速与字幕浮层菜单、截帧抓图与全屏。Src / Poster 指定源与封面,Aspect 控制画幅比例,Fit 控制填充方式,Tracks 传入 WebVTT 字幕轨,EnableSnapshot 打开截帧。

常见能力:

  • 原生 / 自定义控制条切换
  • 纵向音量弹层
  • 倍速浮层菜单(0.5–2×)
  • WebVTT 多字幕轨
  • 截帧抓图与全屏
  • Play / Pause / Seek / Fullscreen 等公开方法与事件回调

用法

<Video Src="/media/intro.mp4" Poster="/media/poster.jpg" Aspect="16 / 9" />

@* 自定义控制条:倍速弹层 + WebVTT 字幕 + 截帧抓图 *@
<Video Src="/media/intro.mp4" Custom="true" EnableSnapshot="true"
       Tracks="@tracks" OnSnapshot="OnSnapshot" OnError="OnError" />

API 参数

参数 类型 默认值 说明
Aspect string "16 / 9" CSS aspect-ratio,默认 16:9。
AutoPlay bool false 自动播放(多数浏览器需配合 Muted)。
Caption string null 底部说明文字。
Controls bool true 是否显示控制条(原生模式下映射到 video[controls])。
CrossOrigin string null crossorigin 属性;跨域截图需服务端返回 CORS 头,否则截图会因画布被污染而失败。
Custom bool false 是否使用自定义控制条(覆盖层);为 false 时用浏览器原生控制条,可在界面运行时切换。
EnableSnapshot bool true 是否启用截帧抓图按钮。
FallbackText string "视频加载失败" 加载失败占位文案。
Fit string "contain" object-fit:contain(默认,完整显示)或 cover(铺满裁切)。
Loop bool false 循环播放。
Muted bool false 初始静音。
OnEnded EventCallback — 事件 播放结束回调。
OnError EventCallback<int> — 事件 出错回调,参数为 HTMLMediaElement error.code。
OnPause EventCallback — 事件 暂停回调。
OnPlay EventCallback — 事件 开始播放回调。
OnSnapshot EventCallback<string> — 事件 截图完成回调,参数为 JPEG dataURL。
PlaybackSpeed double 1 初始倍速。
Poster string null 封面海报图地址。
Preload string "metadata" 预加载策略:none / metadata(默认)/ auto。
Speeds Double[] Double[] 可选倍速集合(渲染为自定义控制条的倍速弹层菜单)。
Src string null 视频地址。
Tracks IEnumerable<VideoTrack> null 字幕轨集合(WebVTT)。
Visible bool true 取得或设置组件是否可见,默认为false。
VisibleChanged EventCallback<bool> — 事件 取得或设置组件可见性变化时的回调事件。
Volume double 1 初始音量 0~1。
Class string null 取得或设置组件的CSS类名,用于自定义样式。
Disabled bool false 取得或设置组件是否禁用,默认为false。
Style string null 取得或设置组件的内联样式,用于自定义样式。

所有组件均继承 BaseComponent,除上表参数外还支持 Class、Style、Disabled、Visible。

微信公众号二维码 扫码关注公众号
QQ 交流群二维码 扫码加入 QQ 群