Bädda in video i PowerPoint-presentationer med C++

Microsoft PowerPoint ger dig möjligheten att lägga till videoramar till dina PowerPoint-presentationer. Videor kan användas för att förbättra kvaliteten på presentationerna och hjälpa till att bättre kommunicera budskapet till publiken. Det kan finnas situationer där du vill lägga till videor till PowerPoint-presentationer programmatiskt. För detta ändamål kommer den här artikeln att lära dig hur du bäddar in video i PowerPoint-presentationer med C++.

C++ API för att bädda in video i PowerPoint-presentationer

Vi kommer att använda Aspose.Slides for C++ API för att bädda in videor i PowerPoint-presentationer. Det är ett kraftfullt och funktionsrikt API som stöder att skapa, läsa och ändra PowerPoint-filer utan att Mircosoft PowerPoint behöver installeras. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Slides.Cpp

Bädda in video i PowerPoint-presentationer med C++

Följande är stegen för att bädda in en video i en PowerPoint-presentation.

Följande exempelkod visar hur man bäddar in en video i en PowerPoint-presentation med C++.

// Filsökvägar
const String videoFilePath = u"SourceDirectory\\Video\\Wildlife.mp4";
const String outputFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";

// Skapa en instans av klassen Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Gå till den första bilden
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Ladda videofilen för att streama
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);

// Lägg till videon till presentationen
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);

// Lägg till videoram
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);

// Bädda in video i videoramen
videoFrame->set_EmbeddedVideo(vid);

// Ställ in uppspelningsläge och volym för videon
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);

// Spara presentationen
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Bädda in video från en webbkälla i PowerPoint-presentationer

Följande är stegen för att bädda in en video från en webbkälla i en PowerPoint-presentation.

Följande exempelkod visar hur man bäddar in en video från en webbkälla i en PowerPoint-presentation med C++.

// Sökväg
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";

// Skapa en instans av klassen Presentation
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Gå till den första bilden
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Lägg till videoramen från webbkällan
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");

// Ställ in uppspelningsläge och volym för videon
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);

// Spara presentationen
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Extrahera video från PowerPoint-presentationer med C++

Följande är stegen för att extrahera en video från en PowerPoint-presentation med C++.

  • Ladda först PowerPoint-filen med klassen Presentation.
  • Gå igenom presentationens bilder.
  • Gå igenom formerna i varje bild.
  • För varje form, kontrollera om formen är en VideoFrame. Om det är en videoram, extrahera den inbäddade videon och spara den.

Följande exempelkod visar hur man extraherar en video från en PowerPoint-presentation med C++.

// Filsökvägar
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";

// Ladda presentationsfilen
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
	// Slinga genom bilderna
	auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
	decltype(slide_enumerator->get_Current()) slide;
	while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
	{
		// Slinga genom formerna
		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))
		{
			// Kontrollera om formen är en videoram
			if (System::ObjectExt::Is<VideoFrame>(shape))
			{
				// Extrahera videofilen
				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);

					// Rensa resurser under "använder" uttalande
					//System::Detaljer::DisposeGuard __dispose_guard_0{ stream, ASPOSE_CURRENT_FUNCTION };
					// ------------------------------------------
					stream->Write(buffer, 0, buffer->get_Length());
				}
			}
		}
	}
}

Skaffa en gratis licens

För att prova API utan utvärderingsbegränsningar kan du begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du bäddar in videor i PowerPoint-presentationer med C++. Dessutom har du sett hur man extraherar inbäddade videor från PowerPoint-presentationer med Aspose.Slides för C++ API. Det är ett robust API som ger många ytterligare funktioner för att arbeta med PowerPoint-filer. Du kan utforska API:et i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även

Tips: Du kanske vill kolla in Aspose GRATIS PowerPoint till Video omvandlare eftersom den låter dig förvandla dina presentationer till fantastiska videor med övergångseffekter.