Incorporar vídeo em apresentações do PowerPoint usando C++

O Microsoft PowerPoint oferece a capacidade de adicionar quadros de vídeo às suas apresentações do PowerPoint. Os vídeos podem ser usados para melhorar a qualidade das apresentações e ajudar a comunicar melhor a mensagem ao público. Pode haver situações em que você deseja adicionar vídeos a apresentações do PowerPoint programaticamente. Para isso, este artigo ensinará como incorporar vídeo em apresentações do PowerPoint usando C++.

API C++ para incorporar vídeo em apresentações do PowerPoint

Usaremos a API Aspose.Slides for C++ para incorporar vídeos em apresentações do PowerPoint. É uma API poderosa e rica em recursos que suporta a criação, leitura e modificação de arquivos do PowerPoint sem a necessidade da instalação do Mircosoft PowerPoint. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Slides.Cpp

Incorporar vídeo em apresentações do PowerPoint usando C++

A seguir estão as etapas para incorporar um vídeo em uma apresentação do PowerPoint.

O código de exemplo a seguir mostra como incorporar um vídeo em uma apresentação do PowerPoint usando C++.

// Caminhos de arquivo
const String videoFilePath = u"SourceDirectory\\Video\\Wildlife.mp4";
const String outputFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";

// Criar uma instância da classe Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Acesse o primeiro slide
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Carregue o arquivo de vídeo para transmitir
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);

// Adicionar o vídeo à apresentação
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);

// Adicionar quadro de vídeo
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);

// Incorporar vídeo dentro do quadro de vídeo
videoFrame->set_EmbeddedVideo(vid);

// Defina o modo de reprodução e o volume do vídeo
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);

// Salve a apresentação
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Incorporando vídeo de uma fonte da Web em apresentações do PowerPoint

A seguir estão as etapas para incorporar um vídeo de uma fonte da Web em uma apresentação do PowerPoint.

O código de exemplo a seguir mostra como incorporar um vídeo de uma fonte da Web em uma apresentação do PowerPoint usando C++.

// Caminho de arquivo
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";

// Criar uma instância da classe Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Acesse o primeiro slide
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Adicione o quadro de vídeo da fonte da web
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");

// Defina o modo de reprodução e o volume do vídeo
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);

// Salve a apresentação
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Extrair vídeo de apresentações do PowerPoint usando C++

A seguir estão as etapas para extrair um vídeo de uma apresentação do PowerPoint usando C++.

  • Primeiramente, carregue o arquivo PowerPoint usando a classe Apresentação.
  • Percorra os slides da apresentação.
  • Percorra as formas em cada slide.
  • Para cada forma, verifique se a forma é um VideoFrame. Caso seja um quadro de vídeo, extraia o vídeo incorporado e salve-o.

O código de exemplo a seguir mostra como extrair um vídeo de uma apresentação do PowerPoint usando C++.

// Caminhos de arquivo
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";

// Carregar o arquivo de apresentação
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
	// Percorra os slides
	auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
	decltype(slide_enumerator->get_Current()) slide;
	while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
	{
		// Percorra as 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))
		{
			// Verifique se a forma é um quadro de vídeo
			if (System::ObjectExt::Is<VideoFrame>(shape))
			{
				// Extraia o arquivo 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);

					// Limpando recursos sob a instrução 'usando'
					//System::Details::DisposeGuard __dispose_guard_0{ fluxo, ASPOSE_CURRENT_FUNCTION };
					// ------------------------------------------
					stream->Write(buffer, 0, buffer->get_Length());
				}
			}
		}
	}
}

Obtenha uma licença gratuita

Para experimentar a API sem limitações de avaliação, você pode solicitar uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como incorporar vídeos em apresentações do PowerPoint usando C++. Além disso, você viu como extrair vídeos incorporados de apresentações do PowerPoint usando o Aspose.Slides for C++ API. É uma API robusta que fornece muitos recursos adicionais para trabalhar com arquivos do PowerPoint. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também

Dica: Você pode conferir o conversor Aspose FREE PowerPoint to Video porque permite transformar suas apresentações em vídeos impressionantes com efeitos de transição.