说明
面向“视频直报 / 监控在线直播”场景的拉流播放组件,把网络视频流实时拉取并显示。四种取流方式:HLS(.m3u8,经内置 hls.js 播放,Safari 自动回落原生)、HTTP-FLV(经内置 flv.js 软解,需浏览器支持 MSE)、WebRTC(WHEP,浏览器原生 RTCPeerConnection 向端点 POST SDP 交换,无需额外脚本,延迟最低)与原生点播(mp4 / mov / webm)。hls.js 与 flv.js 均以 RCL 静态资源内置、首次真正取流时才惰性加载,Web 与 Blazor Hybrid 双端可用。Protocol 为 auto 时按地址后缀与协议头自动判定,也可显式指定。Src 传入流地址,AutoStart 就绪即连接,LowLatency 压小缓冲、Retry 断流自动重连、Muted 规避自动播放策略。组件自带状态栏(直播中 / 缓冲中 / 已断开 / 未连接、协议、分辨率与估算延迟)、地址与协议输入条、静音 / 音量、全屏,以及截帧抓拍:EnableSnapshot 打开后可一键抓拍当前画面并经 OnSnapshot 回推 JPEG dataURL,供上传取证。直播取流依赖服务端与网络,跨域源需返回 CORS 头,否则画面可见但截帧会因画布被污染而失败。
常见能力:
- HLS / HTTP-FLV / WebRTC(WHEP) / 原生点播四种取流
- hls.js、flv.js 内置离线打包,首次使用惰性加载,双端可用
- WebRTC 走浏览器原生,无需第三方脚本,延迟最低
- Protocol 自动识别或显式指定,地址后缀与协议头智能判定
- 状态栏显示直播中 / 缓冲 / 断开、协议、分辨率与估算延迟
- 静音 / 音量、整幅全屏
- 截帧抓拍经 OnSnapshot 回推 dataURL,可上传取证
- 断流按 Retry 自动重连,外部换 Src 自动重播
用法
<LivePlayer Src="@camUrl" Title="前门 · 摄像机 01" />
@* 低延迟直播 + 断流重连 + 抓拍上报(协议自动识别) *@
<LivePlayer Src="@m3u8" Protocol="hls" LowLatency="true" Retry="3"
OnSnapshot="UploadSnapshot" OnState="OnState" OnError="OnError" />
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Aspect |
string |
"16 / 9" |
CSS aspect-ratio,默认 16:9。 |
AutoPlay |
bool |
true |
连接后是否自动起播(多数浏览器需 Muted 才允许自动播放)。 |
AutoStart |
bool |
false |
就绪后自动连接一次(需 Src 非空)。 |
Dense |
bool |
false |
紧凑磁贴模式(供 LiveWall 宫格墙内嵌):隐藏独立状态栏 / 地址栏 / 控制条, 改以画面左上角标 + 悬停浮现的静音 / 抓拍 / 全屏 / 停止控件呈现,画面铺满所在格。 |
EnableSnapshot |
bool |
true |
是否启用截帧抓拍按钮。 |
LowLatency |
bool |
false |
低延迟模式(HLS / FLV 尽量压小缓冲,牺牲一点卡顿抗性)。 |
Muted |
bool |
true |
初始静音(默认开,规避自动播放策略并避免直播回环啸叫)。 |
OnError |
EventCallback<string> |
— | 事件 取流出错回调,参数为 JS 侧错误码 / 文本。 |
OnSnapshot |
EventCallback<string> |
— | 事件 抓拍完成回调,参数为 JPEG dataURL。 |
OnState |
EventCallback<LiveState> |
— | 事件 播放状态变更回调。 |
Poster |
string |
null |
起播前的封面海报图地址。 |
Protocol |
string |
"auto" |
取流协议:auto(默认,按地址判定)/ hls / flv / webrtc / native。 |
Retry |
int |
0 |
断流后自动重连次数(0 表示不重连,默认 0)。 |
RetryInterval |
int |
2000 |
每次重连的间隔毫秒(默认 2000)。 |
ShowUrlBar |
bool |
true |
是否在组件内显示地址 / 协议输入条(关掉则由调用方通过 Src 外部驱动)。 |
Src |
string |
null |
视频流地址(HLS / HTTP-FLV / WebRTC(WHEP) 端点 / 点播文件)。 |
Title |
string |
null |
标题(显示在状态栏左侧,属数据不做本地化)。 |
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 群