说明
LivePlayer 的多路编排组件,把若干摄像头源(CameraSource:名称 / 地址 / 协议)按 4 / 6 / 9 / 12 / 16 宫格统一布局,每格内嵌一个紧凑磁贴(Dense 模式的 LivePlayer),画面铺满所在格、保持干净。顶部工具条可切换宫格布局、一键整墙静音 / 取消静音,并在运行时添加或移除摄像头:实际路数不足宫格位时按 BlankFill 用虚线空白格补齐以维持均匀,多于宫格位时自动分页(上一页 / 下一页)。取流协议、低延迟、断流重连次数、画幅比例等经同名参数下发给每一路。悬停磁贴才浮现该路的播放 / 静音 / 抓拍 / 全屏 / 连接·停止控件,单击画面或点全屏按钮即把这一路放大到全屏(原生 Fullscreen API,Esc 退出后图标自动同步),断流报错的那一路整格描红高亮以便一眼定位问题源。抓拍经 OnSnapshot 回推 CameraSnapshot(携带摄像头与 JPEG dataURL),可据此上传取证。依赖与限制同 LivePlayer:跨域流需服务端返回 CORS 头,桌面 WebView2 宿主可能对相机与全屏另有权限限制。
常见能力:
- 4 / 6 / 9 / 12 / 16 宫格一键切换,列数自适应
- 每格内嵌 Dense 磁贴,悬停才浮现播放 / 静音 / 抓拍 / 全屏 / 停止
- 单击画面或全屏按钮把单路放大到全屏,Esc 退出图标自动同步
- 整墙统一静音 / 取消静音,逐路仍可单独控制
- 运行时添加 / 移除摄像头,Items 静态传入 + 内部接管
- 路数不足补空白格保持均匀,超出宫格自动分页
- 断流那一路整格描红高亮,一眼定位问题源
- 抓拍回推 CameraSnapshot(摄像头 + dataURL),协议 / 低延迟 / 重连参数下发每路
用法
<LiveWall Title="园区监控" Items="@cams" Grid="9" Muted="true" AutoStart="true"
LowLatency="true" Retry="2" OnSnapshot="OnSnap" />
@code {
// 名称 / 流地址 / 协议;Grid 支持 4 / 6 / 9 / 12 / 16,超出自动分页、不足补空位。
var cams = new List<CameraSource>
{
new("前门 01", "https://nvr/1.m3u8", "hls"),
new("后门 02", "https://nvr/2.flv", "flv"),
new("车库 03", "whep://nvr/3"),
};
void OnSnap(CameraSnapshot s) => Upload(s.Camera.Name, s.Data);
}
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
AllowEdit |
bool |
true |
是否允许运行时增删摄像头(悬停出现删除角标、工具条出现添加)。 |
Aspect |
string |
"16 / 9" |
每格画幅比例(默认 16:9)。 |
AutoStart |
bool |
true |
磁贴就绪后自动起流(默认开)。多路同开对带宽 / 解码压力较大,可按需关闭改手动逐路连接。 |
BlankFill |
bool |
true |
实际路数不足宫格位时是否用空白格补齐。 |
Grid |
int |
4 |
宫格布局:4 / 6 / 9 / 12 / 16(默认 4)。 |
Items |
IEnumerable<CameraSource> |
null |
摄像头列表(初始)。运行时增删只作用于内部副本,不回写调用方集合。 |
LowLatency |
bool |
false |
下发给每路的低延迟模式。 |
MaxCameras |
int |
64 |
可容纳的最大路数(添加时的软上限,默认 64)。 |
Muted |
bool |
true |
整墙初始静音(默认开,规避自动播放策略与回环啸叫)。 |
OnSnapshot |
EventCallback<CameraSnapshot> |
— | 事件 某一路抓拍完成回调,携带摄像头与 JPEG dataURL。 |
Retry |
int |
3 |
下发给每路的断流重连次数。 |
ShowToolbar |
bool |
true |
是否显示顶部工具条(布局切换 / 整墙静音 / 添加)。 |
Title |
string |
null |
墙标题(显示在工具条左侧,属数据不做本地化)。 |
Visible |
bool |
true |
取得或设置组件是否可见,默认为false。 |
VisibleChanged |
EventCallback<bool> |
— | 事件 取得或设置组件可见性变化时的回调事件。 |
Class |
string |
null |
取得或设置组件的CSS类名,用于自定义样式。 |
Disabled |
bool |
false |
取得或设置组件是否禁用,默认为false。 |
Style |
string |
null |
取得或设置组件的内联样式,用于自定义样式。 |
所有组件均继承
BaseComponent,除上表参数外还支持Class、Style、Disabled、Visible。
扫码关注公众号
扫码加入 QQ 群