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

目录

1、项目介绍

2、组件集成

[2.1 下载地址](#2.1 下载地址)

[2.2 添加依赖](#2.2 添加依赖)

3、使用示例

[3.1 启动动画](#3.1 启动动画)

[3.2 视频渲染](#3.2 视频渲染)

[3.3 效果展示](#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 关键字,选择最新版本安装。

3、使用示例

3.1 启动动画

cs 复制代码
   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 文件,添加代码:

cs 复制代码
    <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# 代码文件,添加代码:

cs 复制代码
   // 创建VideoSource
   VideoSource 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 效果展示

平铺模式

画廊模式

4、项目地址

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

相关推荐
喵叔哟6 分钟前
【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--访问权限中间件
微服务·中间件·.net
wyh要好好学习19 分钟前
C# WPF 记录DataGrid的表头顺序,下次打开界面时应用到表格中
开发语言·c#·wpf
AitTech20 分钟前
C#实现:电脑系统信息的全面获取与监控
开发语言·c#
安步当歌34 分钟前
【WebRTC】视频发送链路中类的简单分析(下)
网络·音视频·webrtc·视频编解码·video-codec
咩咩觉主1 小时前
尽量通俗易懂地概述.Net && U nity跨语言/跨平台相关知识
unity·c#·.net·.netcore
yngsqq1 小时前
035集——BOUNDARY获取图形外轮廓(CAD—C#二次开发入门)
开发语言·javascript·c#
lqj_本人2 小时前
鸿蒙next版开发:音频并发策略扩展(ArkTS)
音视频
墨笺染尘缘2 小时前
Unity——对RectTransform进行操作
ui·unity·c#·游戏引擎
染指11102 小时前
45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
汇编·c++·windows·反游戏外挂·游戏逆向
喵叔哟5 小时前
【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--角色可访问接口管理
数据库·微服务·.net