Microsoft PowerPoint предоставляет вам возможность добавлять видеокадры в презентации PowerPoint. Видео можно использовать для повышения качества презентаций и лучшего донесения информации до аудитории. Могут быть ситуации, когда вы хотите добавить видео в презентации PowerPoint программно. С этой целью эта статья научит вас встраивать видео в презентации PowerPoint с помощью C++.
- C++ API для встраивания видео в презентации PowerPoint
- Встраивание видео в презентации PowerPoint с помощью C++
- Встраивание видео из веб-источника в презентации PowerPoint
- Извлечение видео из презентаций PowerPoint с помощью C++
C++ API для встраивания видео в презентации PowerPoint
Мы будем использовать API Aspose.Slides for C++ для встраивания видео в презентации PowerPoint. Это мощный и многофункциональный API, который поддерживает создание, чтение и изменение файлов PowerPoint без необходимости установки Mircosoft PowerPoint. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.
PM> Install-Package Aspose.Slides.Cpp
Встраивание видео в презентации PowerPoint с помощью C++
Ниже приведены шаги для встраивания видео в презентацию PowerPoint.
- Во-первых, создайте экземпляр класса Presentation для представления нового файла PowerPoint.
- Найдите слайд, на который вы хотите встроить видео.
- Добавьте видео в презентацию с помощью команды Presentation->getVideos()->AddVideo (System::SharedPtrSystem::IO::Stream поток) метод.
- Добавьте видеокадр с помощью метода ISlide->getShapes()->AddVideoFrame(float x, float y, float width, float height, System::SharedPtr< IVideo > video).
- Вставьте видео в видеокадр с помощью IVideoFrame->setEmbeddedVideo(System::SharedPtr значение) метод.
- Установите режим воспроизведения и громкость видео.
- Наконец, сохраните презентацию с помощью метода Презентация->Сохранить(System::String fname, Export::SaveFormat format).
В следующем примере кода показано, как встроить видео в презентацию PowerPoint с помощью C++.
// Пути к файлам
const String videoFilePath = u"SourceDirectory\\Video\\Wildlife.mp4";
const String outputFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
// Создайте экземпляр класса Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// Доступ к первому слайду
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// Загрузите видеофайл для потоковой передачи
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Добавьте видео в презентацию
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);
// Добавить кадр видео
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);
// Вставить видео внутрь видеокадра
videoFrame->set_EmbeddedVideo(vid);
// Установите режим воспроизведения и громкость видео
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);
// Сохранить презентацию
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Встраивание видео из веб-источника в презентации PowerPoint
Ниже приведены шаги для встраивания видео из веб-источника в презентацию PowerPoint.
- Во-первых, создайте экземпляр класса Presentation для представления нового файла PowerPoint.
- Найдите слайд, на который вы хотите встроить видео.
- Добавьте видеокадр, используя метод ISlide->getShapes()->AddVideoFrame(float x, float y, float width, float height, System::String fname).
- Установите режим воспроизведения видео.
- Наконец, сохраните презентацию с помощью метода Презентация->Сохранить(System::String fname, Export::SaveFormat format).
В следующем примере кода показано, как внедрить видео из веб-источника в презентацию PowerPoint с помощью C++.
// Путь к файлу
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";
// Создайте экземпляр класса Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// Доступ к первому слайду
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// Добавьте видеокадр из веб-источника
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");
// Установите режим воспроизведения и громкость видео
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
// Сохранить презентацию
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Извлечение видео из презентаций PowerPoint с помощью C++
Ниже приведены шаги для извлечения видео из презентации PowerPoint с помощью C++.
- Во-первых, загрузите файл PowerPoint с помощью класса Presentation.
- Пролистайте слайды презентации.
- Прокрутите фигуры на каждом слайде.
- Для каждой фигуры проверьте, является ли фигура VideoFrame. Если это видеокадр, извлеките встроенное видео и сохраните его.
В следующем примере кода показано, как извлечь видео из презентации PowerPoint с помощью C++.
// Пути к файлам
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";
// Загрузите файл презентации
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
// Пролистайте слайды
auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
decltype(slide_enumerator->get_Current()) slide;
while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
{
// Цикл по фигурам
auto shape_enumerator = (presentation->get_Slides()->idx_get(0)->get_Shapes())->GetEnumerator();
decltype(shape_enumerator->get_Current()) shape;
while (shape_enumerator->MoveNext() && (shape = shape_enumerator->get_Current(), true))
{
// Проверьте, является ли фигура видеокадром
if (System::ObjectExt::Is<VideoFrame>(shape))
{
// Извлеките видеофайл
System::SharedPtr<VideoFrame> vf = System::DynamicCast_noexcept<Aspose::Slides::VideoFrame>(shape);
System::String type = vf->get_EmbeddedVideo()->get_ContentType();
int32_t ss = type.LastIndexOf(L'/');
type = type.Remove(0, type.LastIndexOf(L'/') + 1);
System::ArrayPtr<uint8_t> buffer = vf->get_EmbeddedVideo()->get_BinaryData();
{
System::SharedPtr<System::IO::FileStream> stream = System::MakeObject<System::IO::FileStream>(outputFilePath + type, System::IO::FileMode::Create, System::IO::FileAccess::Write, System::IO::FileShare::Read);
// Очистка ресурсов под оператором «using»
//System::Details::DisposeGuard __dispose_guard_0{поток, ASPOSE_CURRENT_FUNCTION};
// ---------------------------------------------------------
stream->Write(buffer, 0, buffer->get_Length());
}
}
}
}
}
Получить бесплатную лицензию
Чтобы попробовать API без ограничений на пробную версию, вы можете запросить бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как встраивать видео в презентации PowerPoint с помощью C++. Кроме того, вы видели, как извлекать встроенные видео из презентаций PowerPoint с помощью Aspose.Slides for C++ API. Это надежный API, предоставляющий множество дополнительных функций для работы с файлами PowerPoint. Вы можете подробно изучить API, посетив официальную документацию. Если у вас возникнут вопросы, обращайтесь к нам на бесплатный форум поддержки.
Смотрите также
- Добавление переходов между слайдами в презентации PowerPoint с помощью C++
- Установите фон слайда в презентациях PowerPoint с помощью C++
Совет. Возможно, вы захотите попробовать БЕСПЛАТНЫЙ конвертер Aspose PowerPoint to Video, поскольку он позволяет преобразовывать презентации в потрясающие видеоролики с эффектами перехода.