C#使用PPT组件的CreateVideo方法生成视频
目录
需求
实现
CreateVideo方法
关键代码
CreateVideoStatus
其它
需求
我们在使用PowerPoint文档时,经常会使用其导出功能以创建视频,如下图:

手工操作下,在制作好PPT文件后,点击文件 -> 导出 -> 创建视频 -> 设置导出选项 -> 点击创建视频即可,下面我们介绍一下如何使用C#来实现这一需求。
实现
首先我们需要引用 Microsoft.Office.Interop.PowerPoint 程序集,具体的系统环境及基础配置,请参照我的文章《C#操作PPT动画窗格并插入音频文件的一些思路》。
Microsoft.Office.Interop.PowerPoint.Presentation对象提供了CreateVideo方法,该方法实现创建视频功能。
CreateVideo方法
语法为:CreateVideo( FileName, UseTimingsAndNarrations, DefaultSlideDuration, VertResolution, FramesPerSecond, Quality )
参数介绍:
| 名称 | 必需/可选 | 对应C#类型 | 说明 | 默认值 |
|---|---|---|---|---|
| FileName | 必需 | string | 要创建的视频文件的名称 | |
| UseTimingsAndNarrations | 可选 | bool | 指示是否使用计时和旁白 | true |
| DefaultSlideDuration | 可选 | int | 观看幻灯片的持续时间(单位:秒) | 5 |
| VertResolution | 可选 | int | 幻灯片的分辨率 | 720 |
| FramesPerSecond | 可选 | int | 每秒的帧数 | 30 |
| Quality | 可选 | int | 幻灯片的质量水平,最高100 | 85 |
关键代码
POWERPOINT.Application objApp = null; //初始PPT应用对象
POWERPOINT.Presentation objPresSet = null; //初始文稿对象objApp = new POWERPOINT.Application(); //创建实例化PPT应用
objApp.DisplayAlerts = POWERPOINT.PpAlertLevel.ppAlertsNone; //关闭一切提示string pptfilename="c:\\test.pptx"; //要打开的PPT文件名//打开文件,创建实例化PPT文稿对象
objPresSet = objApp.Presentations.Open(pptfilename, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);string MP4_FileName = "c:\\test.mp4"; //输出的MP4文件名
bool UseTimingsAndNarrations = false; //指示是否使用计时和旁白
int DefaultSlideDuration = 5; //观看幻灯片的持续时间(单位:秒)
int VertResolution = 720; //幻灯片的分辨率
int FramesPerSecond = 30; //每秒的帧数
int Quality = 100; //幻灯片的质量水平,最高100//创建视频开始
objPresSet.CreateVideo(MP4_FileName, UseTimingsAndNarrations, DefaultSlideDuration, VertResolution, FramesPerSecond, Quality);//由于该方法是异步的,需要实时监控生成进度
while (objPresSet.CreateVideoStatus == POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusInProgress)
{System.Threading.Thread.Sleep(1000); //间隔1秒监控1次
}//生成完毕,执行其它操作.........
CreateVideoStatus
返回在当前文稿对象中创建一个视频的状态,只读属性。枚举包括如下:
POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusDone //完成
POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusFailed //失败
POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusNone //空闲
POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusQueued //排队
POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusInProgress //执行中
其它
如果在同一台计算机,即使打开多个PPT应用,每个应用执行不同的导出操作,也只有一个任务在执行,其它的任务则处于排队状态,而且如果显式的打开应用,会在所有打开的PPT应用的底部状态栏看到同一任务信息,即正在创建的视频信息。
以上是C#使用PPT组件的CreateVideo方法生成视频的介绍,感谢您的阅读,欢迎大家批评指正。
相关文章:
C#使用PPT组件的CreateVideo方法生成视频
目录 需求 实现 CreateVideo方法 关键代码 CreateVideoStatus 其它 需求 我们在使用PowerPoint文档时,经常会使用其导出功能以创建视频,如下图: 手工操作下,在制作好PPT文件后,点击文件 -> 导出 -> 创建视…...
数字化体系如何帮助企业拓展裂变增长渠道?数字化营销体系构建?
在当前的商业环境中,数字不仅仅是数据,还代表着技术和资产。企业数字化正是将数据转化为资产的过程。从信息化时代到数字化时代,企业逐渐将业务和组织、管理和创收都朝着在线化和数据化的方向发展,特别是企业的业务板块。数字化营…...
关于vant 的tabbar功能
1、想要实现tabbar页面A,其他的页面B(非tabbar页面)。 从A页面进入B页面,底部的active选中效果应该被取消掉,但是还是选中A。 按照官网的说法有两个方法 一、根据path路径 二、自定义的model 但是!但是…...
:style动态绑定,但只要页面发生变化就会执行一次方法
1、问题 开发过程中有个需求是遍历列表绘制div,div的样式是后端接口传来的,一开始这种写法,:style“formatStyle(item)”,写在了模板中 这样写发现一个问题,只要页面发生重绘,比如页面输入框输入数字&…...
文件的逻辑结构(顺序文件,索引文件)
所谓的“逻辑结构”,就是指在用户看来,文件内部的数据应该是如何组织起来的。 而“物理结构”指的是在操作系统看来,文件的数据是如何存放在外存中的。 1.无结构文件 无结构文件:文件内部的数据就是一系列二进制流或字符流组成。无明显的逻…...
suricata匹配从入门到精通(五)----二次开发保护规则库
0x00 背景 开源的suricata资源包是没有做加密处理,如果想要保护资源包,需要二次开发修改suricata源码。 本文基于suricata6.0.1 版本https://github.com/OISF/suricata/archive/refs/tags/suricata-6.0.1.zip二开。 0x01 实践 通过debug,跟规则处理相关需要修改2个地方。…...
软件测试肖sir__python之ui自动化定位方法(2)
Selenium中元素定位方法 一、定位方法 要实现UI自动化,就必须学会定位web页面元素,Selenium核心 webdriver模块提供了9种定位元素方法: 定位方式 提供方法 id定位 find_element_by_id() name定位 find_element_by_name() class定位 find_elem…...
【JVM面试题】JVM分代年龄为何是15次?能设置为16吗?
系列文章目录 【JVM系列】第一章 运行时数据区 【JVM面试题】第二章 从JDK7 到 JDK8, JVM为啥用元空间替换永久代? 【JVM面试题】第三章 JVM分代年龄为何是15次?能设置为16吗? 大家好,我是青花。拥有多项发明专利(都是…...
java三层架构/表现层-业务层-持久层
三层架构 什么是 Java 三层架构 三层架构是指:视图层view(表现层),服务层service(业务逻辑层),持久层Dao(数据访问层), Java的三层架构是指将Java程序分为三…...
视频监控这样做,简单又高效!
随着技术的不断进步,视频监控系统已经变得更加高效和智能,可以提供更全面的监控和分析功能,有助于提高安全性、管理效率和决策支持。 客户案例 超市连锁店 福建某全国性超市连锁店面临高额商品损失、偷窃问题,以及对客户安全和员工…...
掌握 Go 的计时器
简介 定时器是任何编程语言的重要工具,它允许开发人员在特定时间间隔安排任务或执行代码。在 Go 中,定时器是通过 time 包实现的,该包提供了一系列功能来创建、启动、停止和有效处理定时器。我们将探索 Go 中定时器的强大功能,并…...
嵌入式软件开发笔试面试
C语言部分: 1.gcc的四步编译过程 1.预处理 展开头文件,删除注释、空行等无用内容,替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误,如果有错则报错,没有错误则生成汇编文件。 gcc -S hello.i -o h…...
【Qt高阶】Linux安装了多个版本的Qt 部署Qt程序,出包【2023.10.17】
简介 linux系统下可执行程序运行时会加载一些动态库so,有一些是Qt的库,Qt的库会加载其他更基础的库。最后出包的时候需要把依赖的包整理到一个文件夹,来制作安装包。近期遇到已经将依赖的so文件拷贝至程序目录下,但还是调系统路径…...
OpenGL简介
OpenGL 本身并不是一个 API,它仅仅是一个由 Khronos组织 制定并维护的规范(Specification)。规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现的,将由 OpenGL 库的开发者自行决定。…...
持续集成工具jenkins操作
安装Jenkins 下载jenkins安装包 linux上下载jenkins失败 开始在windows上安装jenkins 1、先安装JDK https://jingyan.baidu.com/article/fdbd4277dd90f0b89e3f489f.html 免安装版本JDK只需要解压配置环境变量即可 2、安装Jenkins 参考文档: https://www.cnb…...
使用BurpSuite抓取HTTPS接口
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 原因设置方式 原因 BurpSuite之所以不能抓取https数据包,是因为BurpSuite作为中间人代理,我们和https网站之间的数据通信都是由BurpSuite来…...
移动硬盘被格式化了如何恢复数据?四步教你如何恢复
在日常生活中,我们常常会使用各种存储设备来保存和备份我们的重要数据。移动硬盘作为一种便携式的存储设备,被广泛应用于数据的存储和传输。然而,有时候我们会不小心将移动硬盘格式化,从而丢失了里面的数据。本文将介绍移动硬盘格…...
基于变电站自动化系统中的安全措施分析及应用
摘要:阐述变电运行中的问题,电气自动化系统与安全运行措施,包括自动控制设备的投入,电气自动 化与计算机技术相、设备数据的采集与处理、自动化系统的升级、人工智能技术的应用。 关键词:自动控制;数据采…...
18、监测数据采集物联网应用开发步骤(12.3)
阶段性源码下载 监测数据采集物联网应用开发步骤(12.2) 前端web UI开发 demo 核心代码文件: web/index.html web/index.js web/js/common.js web/init.dlls Web/init.js 程序运行之后在浏览器敲入如下内容访问数据接口: http://localhost:9000…...
什么是Mybatis?Mybaits有哪些优点?
MyBatis是一个开源的Java持久层框架,它可以将Java对象映射到关系型数据库中,同时提供了灵活、高效、易用的数据访问解决方案。 下面是对MyBatis的详细介绍: 1、SQL映射文件 MyBatis使用简单的XML文件或注解配置文件将Java对象映射到数据库…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
【若依】框架项目部署笔记
参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作: 压缩包下载:http://download.redis.io/releases 1. 上传压缩包,并进入压缩包所在目录,解压到目标…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
门静脉高压——表现
一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构:由肠系膜上静脉和脾静脉汇合构成,是肝脏血液供应的主要来源。淤血后果:门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血,引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...
ZYNQ学习记录FPGA(二)Verilog语言
一、Verilog简介 1.1 HDL(Hardware Description language) 在解释HDL之前,先来了解一下数字系统设计的流程:逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端,在这个过程中就需要用到HDL,正文…...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...
