Встраивание видео в PowerPoint с помощью C#

Видеокадры используются в презентациях PowerPoint для демонстрации чего-либо или привлечения аудитории. Часто видео используются для экономии времени и повышения эффективности презентаций. В этой статье вы узнаете, как программно работать с видео в презентациях. В частности, в статье будет рассказано, как встроить или извлечь видео в презентацию PowerPoint с помощью C#.

.NET API для встраивания видео в презентации PowerPoint

Чтобы вставлять или извлекать видео в презентации PowerPoint, мы будем использовать Aspose.Slides for .NET. API предназначен для создания и управления документами PowerPoint и OpenOffice. Вы можете установить API через NuGet или скачать его DLL.

PM> Install-Package Aspose.Slides.NET

Встроить видео в презентацию PowerPoint с помощью C#

Ниже приведены шаги для встраивания видео в презентацию PowerPoint с помощью C#.

  • Сначала загрузите файл PowerPoint или создайте новый с помощью класса Presentation.
  • Затем получите ссылку на нужный слайд в объекте ISlide.
  • Добавьте новое видео в коллекцию видео презентации с помощью метода Presentation.Videos.AddVideo() и получите ссылку на него в объект IVideo.
  • Добавьте новый видеокадр на слайд с помощью метода ISlide.Shapes.AddVideoFrame(single, single, single, single, IVideo).
  • Получить ссылку на видеокадр в объект IVideoFrame.
  • Установите режим воспроизведения и громкость видео.
  • Наконец, сохраните презентацию, используя метод Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как внедрить видео в презентацию PowerPoint с помощью C#.

// Создание экземпляра класса Presentation, представляющего PPTX.
using (Presentation pres = new Presentation())
{
    // Получить первый слайд
    ISlide sld = pres.Slides[0];

    // Добавить видео в презентацию
    IVideo vid = pres.Videos.AddVideo(new FileStream("Wildlife.mp4", FileMode.Open));

    // Добавить кадр видео
    IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 350, vid);

    // Назначить видео видеокадру
    vf.EmbeddedVideo = vid;

    // Установите режим воспроизведения и громкость видео
    vf.PlayMode = VideoPlayModePreset.Auto;
    vf.Volume = AudioVolumeMode.Loud;

    // Запишите файл PPTX на диск
    pres.Save("VideoFrame_out.pptx", SaveFormat.Pptx);
}

Встраивание видео в презентации из веб-источника

Вы также можете вставлять видео в презентации PowerPoint из веб-источника. Ниже приведены шаги для достижения этого.

  • Сначала загрузите файл PowerPoint или создайте новый с помощью класса Presentation.
  • Затем получите ссылку на нужный слайд в объекте ISlide.
  • Добавьте новый видеокадр на слайд, указав URL-адрес видео в методе ISlide.Shapes.AddVideoFrame(single, single, single, single, String).
  • Получить ссылку на видеокадр в объект IVideoFrame.
  • Установите режим воспроизведения и громкость видео.
  • Установите миниатюру видео с помощью WebClient.
  • Сохраните презентацию методом Presentation.Save(String, SaveFormat).

В следующем примере кода показано, как встроить видео в презентацию из веб-источника.

using (Presentation pres = new Presentation())
{
    // Идентификатор видео
    string videoId = "Tj75Arhq5ho";

    // Добавить кадр видео
    IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
    videoFrame.PlayMode = VideoPlayModePreset.Auto;

    // Загрузить миниатюру
    using (WebClient client = new WebClient())
    {
        string thumbnailUri = "http://img.youtube.com/vi/" + videoId + "/hqdefault.jpg";
        videoFrame.PictureFormat.Picture.Image = pres.Images.AddImage(client.DownloadData(thumbnailUri));
    }

    // Сохранить презентацию
    pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}

Извлечение видео из презентации PowerPoint на C#

Aspose.Slides для .NET также позволяет извлекать видео из презентации. Ниже приведены простые шаги для достижения этого.

  • Сначала загрузите файл PowerPoint с помощью класса Presentation.
  • Затем просмотрите все ISlide в коллекции Presentation.Slides.
  • Для каждого объекта ISlide выполните цикл по коллекции IShape в нем.
  • Если IShape представляет собой VideoFrame, извлеките и сохраните встроенное видео.

В следующем примере кода показано, как извлечь видео из презентации PowerPoint с помощью C#.

// Загрузить файл презентации 
Presentation presentation = new Presentation("Video.pptx");

// Циклический просмотр слайдов в презентации
foreach (ISlide slide in presentation.Slides)
{
    // Цикл по фигурам
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        if (shape is VideoFrame)
        {
            // Извлечь и сохранить видео
            IVideoFrame vf = shape as IVideoFrame;
            String type = vf.EmbeddedVideo.ContentType;
            int ss = type.LastIndexOf('/');
            type = type.Remove(0, type.LastIndexOf('/') + 1);
            Byte[] buffer = vf.EmbeddedVideo.BinaryData;
            using (FileStream stream = new FileStream("NewVideo_out." + type, FileMode.Create, FileAccess.Write, FileShare.Read))
            {                                                     
                stream.Write(buffer, 0, buffer.Length);
            }
        }
    }
}

Получите бесплатную лицензию API

Вы можете использовать Aspose.Slides для .NET без ограничений на пробную версию, запросив временную лицензию.

Вывод

В этой статье вы узнали, как встраивать видео в презентации PowerPoint с помощью C#. Более того, вы видели, как программно извлекать видео из презентации. В дополнение к этому вы можете посетить документацию, чтобы узнать больше об Aspose.Slides для .NET. Кроме того, вы можете оставлять свои вопросы на нашем форуме.

Смотрите также