说明
默认使用浏览器原生控制条;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 群