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 inbäddning av video i PowerPoint-presentationer
- Bädda in video i PowerPoint-presentationer med C++
- Bädda in video från en webbkälla i PowerPoint-presentationer
- Extrahera video från 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.
- Skapa först en instans av klassen Presentation för att representera en ny PowerPoint-fil.
- Hämta bilden där du vill bädda in videon.
- Lägg till videon till presentationen med hjälp av Presentation->getVideos()->AddVideo (System::SharedPtrSystem::IO::Stream stream) metod.
- Lägg till videoramen med metoden ISlide->getShapes()->AddVideoFrame(float x, float y, float width, floathöjd, System::SharedPtr< IVideo > video).
- Bädda in videon i videoramen med hjälp av IVideoFrame->setEmbeddedVideo(System::SharedPtr värde) metod.
- Ställ in uppspelningsläge och volym för videon.
- Slutligen sparar du presentationen med metoden Presentation->Save(System::String fname, Export::SaveFormat format).
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.
- Skapa först en instans av klassen Presentation för att representera en ny PowerPoint-fil.
- Hämta bilden där du vill bädda in videon.
- Lägg till en videoram med metoden ISlide->getShapes()->AddVideoFrame(float x, float y, float width, float height, System::String fname).
- Ställ in uppspelningsläget för videon.
- Slutligen sparar du presentationen med metoden Presentation->Save(System::String fname, Export::SaveFormat format).
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
- Lägg till bildövergångar i PowerPoint-presentationer med C++
- Ställ in bildbakgrund i PowerPoint-presentationer med C++
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.