【开源项目】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# 代码文件,添加代码:

   // 创建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 效果展示

平铺模式

b95ccb549f0142ab94dbbe8e8dc4f1ca.png

画廊模式

eed7094e131d4dde91258758f53037c2.png

4、项目地址

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

 

 

相关推荐

  1. WPF项目实战视频《一》(主要为WPF基础知识)

    2023-12-18 07:24:03       25 阅读
  2. ffmpeg裁剪视频画面

    2023-12-18 07:24:03       70 阅读
  3. WPF DataGrid行渲染

    2023-12-18 07:24:03       67 阅读
  4. Android 通用视频组件开发

    2023-12-18 07:24:03       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-18 07:24:03       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-18 07:24:03       97 阅读
  3. 在Django里面运行非项目文件

    2023-12-18 07:24:03       78 阅读
  4. Python语言-面向对象

    2023-12-18 07:24:03       88 阅读

热门阅读

  1. 解决spa页面首屏加载慢的方式笔记

    2023-12-18 07:24:03       63 阅读
  2. 解决阿里云ECS磁盘在线扩容不生效

    2023-12-18 07:24:03       60 阅读
  3. 微服务Redis-Session共享登录状态

    2023-12-18 07:24:03       40 阅读
  4. centos-静态ip及修改主机名

    2023-12-18 07:24:03       55 阅读
  5. 【React基础三】组件传值、高阶组件、Hook

    2023-12-18 07:24:03       57 阅读
  6. 如何使用ffmpeg高效的压缩视频

    2023-12-18 07:24:03       62 阅读
  7. C语言学习day09:运算符(下)

    2023-12-18 07:24:03       61 阅读
  8. 【Vue3练习】Vue3使用v-model以及多个v-model

    2023-12-18 07:24:03       55 阅读
  9. vue模板语法

    2023-12-18 07:24:03       63 阅读
  10. 数据结构 | 二叉树的遍历(递归&非递归)

    2023-12-18 07:24:03       56 阅读
  11. 【NeurIPS 2023】多模态联合视频生成大模型CoDi

    2023-12-18 07:24:03       65 阅读
  12. React Hooks解决了什么问题?

    2023-12-18 07:24:03       60 阅读
  13. AutoJs学习-某点阅读自动签到任务脚本

    2023-12-18 07:24:03       49 阅读
  14. Node.js初学习

    2023-12-18 07:24:03       63 阅读