当前位置: 首页 > news >正文

【开源项目】WPF 扩展 -- 多画面视频渲染组件

目录

1、项目介绍

2、组件集成

2.1 下载地址

2.2 添加依赖

3、使用示例

3.1 启动动画

3.2 视频渲染

3.3 效果展示

4、项目地址

 


1、项目介绍

Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发,当前是第一个发布版本 1.0.0,包含 启动动画 和 视频渲染 两大重要功能。视频渲染支持平铺模式和画廊模式,支持多画面异步渲染,能有效发挥硬件性能,集成快捷使用方便。免费版仅支持1个画面渲染,多画面渲染诉求,请与作者联系以供技术支持。

2、组件集成

2.1 下载地址

https://www.nuget.org/packages/Com.Gitusme.Net.Extensiones.Wpf

2.2 添加依赖

代码工程中,使用NuGet包管理器,搜索 Com.Gitusme.Net.Extensiones.Wpf 关键字,选择最新版本安装。

18a0def21319453aa6da338ec35f070a.png

3、使用示例

3.1 启动动画

   protected override void OnStartup(StartupEventArgs e){// 前提条件:需要删除XAML中的 StartupUri = "MainWindow.xaml"this.StartSplashScreen($@"Resources\Images\SplashScreen.png",() => {// 在这里处理耗时任务或加载后台数据Thread.Sleep(3000);},() => {// 加载完成,后进入应用主界面MainWindow mainWindow = new MainWindow();App.Current.MainWindow = mainWindow;mainWindow.Show();},(ex) => {// 加载出错,向用户反馈或记录后台日志MessageBox.Show(ex.Message);});}

3.2 视频渲染

XAML 文件,添加代码:

    <Grid Background="Black"><!-- 平铺模式 --><local:VideoContainer Name="videoContainer"Layout="Grid" Columns="2" Rows="2" /><!-- 画廊模式 --><local:VideoContainer Name="videoContainer"Layout="Gallery" Dock="Left" GallerySize="300" /></Grid>

C# 代码文件,添加代码:

   // 创建VideoSourceVideoSource video = new VideoSource();// 将VideoSource添加至VideoContainer容器videoContainer.Items = new List<VideoSource> { video };// 创建Task,更新VideoSource画面Task task = new Task((video) =>{video.Frame = new VideoFrame(){Data = bytes, // 视频帧数据Format = VideoFormat.RGB, // 指定视频格式(默认为YUV格式)Width = width, // 视频宽度Height = height // 视频高度};}, video);task.Start();

3.3 效果展示

平铺模式

b95ccb549f0142ab94dbbe8e8dc4f1ca.png

画廊模式

eed7094e131d4dde91258758f53037c2.png

4、项目地址

https://github.com/gitusme/Com.Gitusme.Net.Extensiones

 

 

http://www.lryc.cn/news/262235.html

相关文章:

  • risc-v system instruction
  • 08 v-text指令
  • vite基本知识
  • 考研真题c语言
  • neuq-acm预备队训练week 9 P8604 [蓝桥杯 2013 国 C] 危险系数
  • 【BIG_FG_CSDN】*VMware17pro*Linux*Redhit6网络管理(个人向——学习笔记)
  • Nginx location+Nginx rewrite(重写)(新版)
  • uniapp实现地图电子围栏功能
  • LeetCode第376场周赛
  • 数据仓库与数据挖掘小结
  • ensp创建配置环境,实现全网互访
  • 智能优化算法应用:基于JAYA算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • ripro后台登录后转圈和图标不显示的原因及解决方法
  • android 源码编译android 12
  • CSS第二天导读
  • scroll-behavior属性使用方法
  • Python Django 连接 PostgreSQL 操作实例
  • 5.实现简化版raft协议完成选举
  • 服装管理系统 简单实现
  • 深度学习项目实战:垃圾分类系统
  • C#浅拷贝和深拷贝数据
  • 【JVM】4.运行时数据区(程序计数器、虚拟机栈)
  • 算法:程序员的数学读书笔记
  • 机器学习算法---时间序列
  • RK3568/RV1126/RV1109/RV1106 ISP调试方案
  • 【TB作品】51单片机,语音出租车计价器
  • jmeter简单压测kafka
  • 【漏洞复现】红帆OA iorepsavexml.aspx文件上传漏洞
  • 04_Web框架之Django一
  • 单机架构到分布式架构的演变