C#使用PPT組件的CreateVideo方法實現(xiàn)視頻生成
需求
我們在使用PowerPoint文檔時,經(jīng)常會使用其導(dǎo)出功能以創(chuàng)建視頻,如下圖:
手工操作下,在制作好PPT文件后,點擊文件 -> 導(dǎo)出 -> 創(chuàng)建視頻 -> 設(shè)置導(dǎo)出選項 -> 點擊創(chuàng)建視頻即可,下面我們介紹一下如何使用C#來實現(xiàn)這一需求。
實現(xiàn)
首先我們需要引用 Microsoft.Office.Interop.PowerPoint 程序集,具體的系統(tǒng)環(huán)境及基礎(chǔ)配置,請參照我的文章《C#操作PPT動畫窗格并插入音頻文件的一些思路》。
Microsoft.Office.Interop.PowerPoint.Presentation對象提供了CreateVideo方法,該方法實現(xiàn)創(chuàng)建視頻功能。
CreateVideo方法
語法為:CreateVideo( FileName, UseTimingsAndNarrations, DefaultSlideDuration, VertResolution, FramesPerSecond, Quality )
參數(shù)介紹:
名稱 | 必需/可選 | 對應(yīng)C#類型 | 說明 | 默認(rèn)值 |
---|---|---|---|---|
FileName | 必需 | string | 要創(chuàng)建的視頻文件的名稱 | |
UseTimingsAndNarrations | 可選 | bool | 指示是否使用計時和旁白 | true |
DefaultSlideDuration | 可選 | int | 觀看幻燈片的持續(xù)時間(單位:秒) | 5 |
VertResolution | 可選 | int | 幻燈片的分辨率 | 720 |
FramesPerSecond | 可選 | int | 每秒的幀數(shù) | 30 |
Quality | 可選 | int | 幻燈片的質(zhì)量水平,最高100 | 85 |
關(guān)鍵代碼
POWERPOINT.Application objApp = null; //初始PPT應(yīng)用對象 POWERPOINT.Presentation objPresSet = null; //初始文稿對象 objApp = new POWERPOINT.Application(); //創(chuàng)建實例化PPT應(yīng)用 objApp.DisplayAlerts = POWERPOINT.PpAlertLevel.ppAlertsNone; //關(guān)閉一切提示 string pptfilename="c:\\test.pptx"; //要打開的PPT文件名 //打開文件,創(chuàng)建實例化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; //觀看幻燈片的持續(xù)時間(單位:秒) int VertResolution = 720; //幻燈片的分辨率 int FramesPerSecond = 30; //每秒的幀數(shù) int Quality = 100; //幻燈片的質(zhì)量水平,最高100 //創(chuàng)建視頻開始 objPresSet.CreateVideo(MP4_FileName, UseTimingsAndNarrations, DefaultSlideDuration, VertResolution, FramesPerSecond, Quality); //由于該方法是異步的,需要實時監(jiān)控生成進(jìn)度 while (objPresSet.CreateVideoStatus == POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusInProgress) { System.Threading.Thread.Sleep(1000); //間隔1秒監(jiān)控1次 } //生成完畢,執(zhí)行其它操作... ......
CreateVideoStatus
返回在當(dāng)前文稿對象中創(chuàng)建一個視頻的狀態(tài),只讀屬性。枚舉包括如下:
POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusDone //完成 POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusFailed //失敗 POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusNone //空閑 POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusQueued //排隊 POWERPOINT.PpMediaTaskStatus.ppMediaTaskStatusInProgress //執(zhí)行中
其它
如果在同一臺計算機,即使打開多個PPT應(yīng)用,每個應(yīng)用執(zhí)行不同的導(dǎo)出操作,也只有一個任務(wù)在執(zhí)行,其它的任務(wù)則處于排隊狀態(tài),而且如果顯式的打開應(yīng)用,會在所有打開的PPT應(yīng)用的底部狀態(tài)欄看到同一任務(wù)信息,即正在創(chuàng)建的視頻信息。
到此這篇關(guān)于C#使用PPT組件的CreateVideo方法實現(xiàn)視頻生成的文章就介紹到這了,更多相關(guān)C# CreateVideo生成視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# 文件下載之?dāng)帱c續(xù)傳實現(xiàn)代碼
本篇文章主要介紹了C# 文件下載之?dāng)帱c續(xù)傳實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01