Microsoft PowerPoint le brinda la posibilidad de agregar cuadros de video a sus presentaciones de PowerPoint. Los videos se pueden usar para mejorar la calidad de las presentaciones y ayudar a comunicar mejor el mensaje a la audiencia. Puede haber situaciones en las que desee agregar videos a las presentaciones de PowerPoint mediante programación. Con ese fin, este artículo le enseñará cómo incrustar videos en presentaciones de PowerPoint usando C++.
- API de C++ para incrustar video en presentaciones de PowerPoint
- Incrustar video en presentaciones de PowerPoint usando C++
- Incrustación de video de una fuente web en presentaciones de PowerPoint
- Extraer video de presentaciones de PowerPoint usando C++
API de C++ para incrustar video en presentaciones de PowerPoint
Usaremos la API Aspose.Slides for C++ para incrustar videos en presentaciones de PowerPoint. Es una API potente y rica en funciones que admite la creación, lectura y modificación de archivos de PowerPoint sin necesidad de instalar Mircosoft PowerPoint. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.
PM> Install-Package Aspose.Slides.Cpp
Incrustar video en presentaciones de PowerPoint usando C++
Los siguientes son los pasos para incrustar un video en una presentación de PowerPoint.
- En primer lugar, cree una instancia de la clase Presentation para representar un nuevo archivo de PowerPoint.
- Recupere la diapositiva donde desea incrustar el video.
- Agregue el video a la presentación usando Presentation->getVideos()->AddVideo (System::SharedPtrSystem::IO::Stream corriente) método.
- Agregue el cuadro de video usando el método ISlide->getShapes()->AddVideoFrame(float x, float y, float width, float height, System::SharedPtr< IVideo > video).
- Incruste el video dentro del cuadro de video usando IVideoFrame->setEmbeddedVideo(System::SharedPtr valor) método.
- Configure el modo de reproducción y el volumen del video.
- Por último, guarde la presentación usando el método Presentation->Save(System::String fname, Export::SaveFormat format).
El siguiente código de ejemplo muestra cómo incrustar un video en una presentación de PowerPoint usando C++.
// Rutas de archivos
const String videoFilePath = u"SourceDirectory\\Video\\Wildlife.mp4";
const String outputFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
// Crea una instancia de la clase Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// Accede a la primera diapositiva
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// Cargue el archivo de video para transmitir
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Agregar el video a la presentación
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);
// Agregar cuadro de video
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);
// Incrustar video dentro del cuadro de video
videoFrame->set_EmbeddedVideo(vid);
// Establecer el modo de reproducción y el volumen del video
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);
// Guardar la presentación
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Incrustación de video de una fuente web en presentaciones de PowerPoint
Los siguientes son los pasos para incrustar un video de una fuente web en una presentación de PowerPoint.
- En primer lugar, cree una instancia de la clase Presentation para representar un nuevo archivo de PowerPoint.
- Recupere la diapositiva donde desea incrustar el video.
- Agregue un cuadro de video usando el método ISlide->getShapes()->AddVideoFrame(float x, float y, float width, float height, System::String fname).
- Establece el modo de reproducción del video.
- Finalmente, guarde la presentación usando el método Presentation->Save(System::String fname, Export::SaveFormat format).
El siguiente código de ejemplo muestra cómo incrustar un video de una fuente web en una presentación de PowerPoint usando C++.
// Ruta de archivo
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";
// Crea una instancia de la clase Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// Accede a la primera diapositiva
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// Agregue el cuadro de video desde la fuente web
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");
// Establecer el modo de reproducción y el volumen del video
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
// Guardar la presentación
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);
Extraer video de presentaciones de PowerPoint usando C++
Los siguientes son los pasos para extraer un video de una presentación de PowerPoint usando C++.
- En primer lugar, cargue el archivo de PowerPoint utilizando la clase Presentation.
- Recorra las diapositivas de la presentación.
- Recorra las formas en cada diapositiva.
- Para cada forma, verifique si la forma es un VideoFrame. En caso de que sea un cuadro de video, extraiga el video incrustado y guárdelo.
El siguiente código de ejemplo muestra cómo extraer un video de una presentación de PowerPoint usando C++.
// Rutas de archivo
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";
// Cargar el archivo de presentación
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
// Bucle a través de las diapositivas
auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
decltype(slide_enumerator->get_Current()) slide;
while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
{
// Bucle a través de las formas
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))
{
// Compruebe si la forma es un cuadro de video
if (System::ObjectExt::Is<VideoFrame>(shape))
{
// Extrae el archivo de vídeo
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);
// Borrar recursos bajo la declaración 'usando'
//System::Detalles::DisposeGuard __dispose_guard_0{ stream, ASPOSE_CURRENT_FUNCTION };
// ---------------------------------------------------------
stream->Write(buffer, 0, buffer->get_Length());
}
}
}
}
}
Obtenga una licencia gratis
Para probar la API sin limitaciones de evaluación, puede solicitar una licencia temporal gratuita.
Conclusión
En este artículo, ha aprendido a incrustar videos en presentaciones de PowerPoint utilizando C++. Además, ha visto cómo extraer videos incrustados de presentaciones de PowerPoint utilizando Aspose.Slides for C++. Es una API robusta que proporciona muchas funciones adicionales para trabajar con archivos de PowerPoint. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.
Ver también
- Agregue transiciones de diapositivas en presentaciones de PowerPoint usando C++
- Establecer fondo de diapositiva en presentaciones de PowerPoint usando C++
Sugerencia: es posible que desee consultar el convertidor Aspose FREE PowerPoint to Video porque le permite transformar sus presentaciones en videos impresionantes con efectos de transición.