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

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幻灯片的质量水平,最高10085

关键代码

            
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方法生成视频的介绍,感谢您的阅读,欢迎大家批评指正。

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

相关文章:

  • 数字化体系如何帮助企业拓展裂变增长渠道?数字化营销体系构建?
  • 关于vant 的tabbar功能
  • :style动态绑定,但只要页面发生变化就会执行一次方法
  • 文件的逻辑结构(顺序文件,索引文件)
  • suricata匹配从入门到精通(五)----二次开发保护规则库
  • 软件测试肖sir__python之ui自动化定位方法(2)
  • 【JVM面试题】JVM分代年龄为何是15次?能设置为16吗?
  • java三层架构/表现层-业务层-持久层
  • 视频监控这样做,简单又高效!
  • 掌握 Go 的计时器
  • 嵌入式软件开发笔试面试
  • 【Qt高阶】Linux安装了多个版本的Qt 部署Qt程序,出包【2023.10.17】
  • OpenGL简介
  • 持续集成工具jenkins操作
  • 使用BurpSuite抓取HTTPS接口
  • 移动硬盘被格式化了如何恢复数据?四步教你如何恢复
  • 基于变电站自动化系统中的安全措施分析及应用
  • 18、监测数据采集物联网应用开发步骤(12.3)
  • 什么是Mybatis?Mybaits有哪些优点?
  • 点云从入门到精通技术详解100篇-基于3D点云的曲面文字检测(续)
  • 用 Java 在 PDF 中创建和管理图层,实现交互式文档
  • 公司oa是什么?一般公司oa有什么样功能?
  • pytorch里面的 nn.Parameter 和 tensor有哪些异同点
  • leetcode 37. 解数独
  • GIT 分支管理办法
  • 网络代理的多重应用与安全保障
  • C51--简易报警器设计
  • 2023年最新全国各省行政区划数据(省-市-区县-乡镇-村)
  • html5 web 按钮跳转方法(及其相关)
  • ES6 Generator 函数