Проблема с преобразованием PPT в видео с помощью библиотеки взаимодействия Microsoft
Я использую Microsoft Interop Library для создания видео из презентации PowerPoint. В презентации Power Point содержатся внутренние встроенные видео и анимации.
Библиотека Interope работает отлично, и мы можем успешно создавать видео, когда запускаем приложение в Visual Studio. Когда мы развертываем код на сервере IIS, создание видео по-прежнему работает успешно, однако видео, встроенные внутри презентации, не работают.
Кто-нибудь знает об этом поведении IIS и Visual Studio? Мы проверили типы Mime в IIS и все расширения.mov. .mp4 уже есть
Вот код:
var videoRelativePath = "\\UserData\\User_" + templateObj.UserId + "\\VideoTemplate\\Vid_" + timeStampNew + ".mp4";
var videoPath = _environment.ContentRootPath + videoRelativePath;
ErrorLoging.LogMessageInLogFile(System.DateTime.Today.ToLongTimeString() + " - " + "Initializing powerpoint application for video creation");
Microsoft.Office.Interop.PowerPoint.Application ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
Microsoft.Office.Interop.PowerPoint.Presentations oPresSet = ppApp.Presentations;
ErrorLoging.LogMessageInLogFile(System.DateTime.Today.ToLongTimeString() + " - " + "OPening the presentation Instance");
Microsoft.Office.Interop.PowerPoint._Presentation oPres = oPresSet.Open(
videoFileNameForConversion,MsoTriState.msoFalse,MsoTriState.msoFalse,MsoTriState.msoFalse);
//System.Threading.Thread.Sleep(180);
oPres.UpdateLinks();
try
{
//CreateVideo(string FileName, bool UseTimingsAndNarrations, int DefaultSlideDuration, int VertResolution, int FramesPerSecond, int Quality)
ErrorLoging.LogMessageInLogFile(System.DateTime.Today.ToLongTimeString() + " - " + "Calling CreateVideo ");
oPres.CreateVideo(videoPath);
while (oPres.CreateVideoStatus == Microsoft.Office.Interop.PowerPoint.PpMediaTaskStatus.ppMediaTaskStatusInProgress ||
oPres.CreateVideoStatus == Microsoft.Office.Interop.PowerPoint.PpMediaTaskStatus.ppMediaTaskStatusQueued)
{
System.Threading.Thread.Sleep(10000);
}
}
catch (Exception er)
{
ErrorLoging.LogErrorInLogFile(er);
}