Проблема с преобразованием 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);

            }

0 ответов

Другие вопросы по тегам