开发者

C#使用PPT组件的CreateVideo方法实现视频生成

开发者 https://www.devze.com 2023-11-20 12:08 出处:网络 作者: 初九之潜龙勿用
目录需求实现CreateVideo方法关键代码其它需求 我们在使用PowerPoint文档时,经常会使用其导出功能以创建视频,如下图:
目录
  • 需求
  • 实现
    • CreateVideo方法
    • 关键代码
  • 其它

    需求

    我们在使用PowerPoint文档时,经常会使用其导出功能以创建视频,如下图:

    C#使用PPT组件的CreateVideo方法实现视频生成

    手工操作下,在制作好PPT文件后,点击文件 -> 导出 -> 创建视频 -> 设置导出选项 -> 点击创建视频即可,下面我们介绍一下如何使用C#来实现这一需求。

    实现

    首先我们需要引用 Microsoft.Office.Intero编程p.PowerPoint 程序集,具体的系统环境及基础配置,请参照我的文章《C#操作PPT动画窗格并插入音频文件的一些思路》。

    Microsoft.Office.Interop.PowerPoint.Presentation对象提供了CreateVideo方法,该方法实现创建视频功能。

    CreateVideo方法

    语法为:CreateVideo( FileName, UseTimingsAndNarrations, DefaultSlideDuration, VertResolution, Frwww.devze.comamesPerSecond, Quality )

    参数介绍:

    名称必需/可选对应C#类型说明默认值
    FileName必需string要创建的视频文件的名称
    UseTimingsAndNarrations可选bool指示是否使用计时和旁白true
    DefaultSlideDuration可选inandroidt观看幻灯片的持续时间(单位:秒)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.PpMediaTaskStatjavascriptus.ppMediaTaskStatusDone           //完成
    POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusFailed          //失败
    POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusNone           //空闲
    POWERPOINT.PpMediaTaskStatus.ppMediaTaskSt编程atusQueued       //排队
    POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusInProgress  //执行中

    其它

    如果在同一台计算机,即使打开多个PPT应用,每个应用执行不同的导出操作,也只有一个任务在执行,其它的任务则处于排队状态,而且如果显式的打开应用,会在所有打开的PPT应用的底部状态栏看到同一任务信息,即正在创建的视频信息。

    到此这篇关于C#使用PPT组件的CreateVideo方法实现视频生成的文章就介绍到这了,更多相关C# CreateVideo生成视频内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号