Incrustar video en presentaciones de PowerPoint usando C++

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

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.

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.

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'
					//Sistema::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

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.