LivePlayer

监控摄像头在线直播拉流播放器,支持 HLS / HTTP-FLV / WebRTC(WHEP) / 原生点播,可截帧抓拍上报。

最后更新

说明

面向“视频直报 / 监控在线直播”场景的拉流播放组件,把网络视频流实时拉取并显示。四种取流方式: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 交流群二维码 扫码加入 QQ 群