Einbetten von Videos in PowerPoint Präsentationen mit C++

Microsoft PowerPoint bietet Ihnen die Möglichkeit, Videoframes zu Ihren PowerPoint Präsentationen hinzuzufügen. Videos können verwendet werden, um die Qualität der Präsentationen zu verbessern und die Botschaft besser an das Publikum zu übermitteln. Es kann Situationen geben, in denen Sie PowerPoint Präsentationen programmgesteuert Videos hinzufügen möchten. Zu diesem Zweck lernen Sie in diesem Artikel, wie Sie Videos mit C++ in PowerPoint Präsentationen einbetten.

C++-API zum Einbetten von Videos in PowerPoint Präsentationen

Wir werden die API Aspose.Slides for C++ verwenden, um Videos in PowerPoint Präsentationen einzubetten. Es ist eine leistungsstarke und funktionsreiche API, die das Erstellen, Lesen und Ändern von PowerPoint Dateien unterstützt, ohne dass Mircosoft PowerPoint installiert sein muss. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.

PM> Install-Package Aspose.Slides.Cpp

Einbetten von Videos in PowerPoint Präsentationen mit C++

Im Folgenden finden Sie die Schritte zum Einbetten eines Videos in eine PowerPoint Präsentation.

Der folgende Beispielcode zeigt, wie Sie mit C++ ein Video in eine PowerPoint Präsentation einbetten.

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

// Erstellen Sie eine Instanz der Presentation klasse
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Greifen Sie auf die erste Folie zu
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Laden Sie die Videodatei zum Streamen
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);

// Fügen Sie das Video zur Präsentation hinzu
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);

// Videoframe hinzufügen
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);

// Video in den Videorahmen einbetten
videoFrame->set_EmbeddedVideo(vid);

// Stellen Sie den Wiedergabemodus und die Lautstärke des Videos ein
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);

// Speichern Sie die Präsentation
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Einbetten von Videos aus einer Webquelle in PowerPoint Präsentationen

Im Folgenden finden Sie die Schritte zum Einbetten eines Videos aus einer Webquelle in eine PowerPoint Präsentation.

Der folgende Beispielcode zeigt, wie Sie ein Video aus einer Webquelle mit C++ in eine PowerPoint Präsentation einbetten.

// Dateipfad
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";

// Erstellen Sie eine Instanz der Presentation klasse
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Greifen Sie auf die erste Folie zu
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Fügen Sie den Videoframe aus der Webquelle hinzu
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");

// Stellen Sie den Wiedergabemodus und die Lautstärke des Videos ein
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);

// Speichern Sie die Präsentation
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Extrahieren Sie Videos aus PowerPoint Präsentationen mit C++

Im Folgenden finden Sie die Schritte zum Extrahieren eines Videos aus einer PowerPoint Präsentation mit C++.

  • Laden Sie zunächst die PowerPoint Datei mit der Klasse Presentation.
  • Durchlaufen Sie die Folien der Präsentation.
  • Durchlaufen Sie die Formen auf jeder Folie.
  • Prüfen Sie für jede Form, ob die Form ein VideoFrame ist. Falls es sich um einen Videoframe handelt, extrahieren Sie das eingebettete Video und speichern Sie es.

Der folgende Beispielcode zeigt, wie Sie mit C++ ein Video aus einer PowerPoint Präsentation extrahieren.

// Dateipfade
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";

// Laden Sie die Präsentationsdatei
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
	// Durchlaufen Sie die Folien
	auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
	decltype(slide_enumerator->get_Current()) slide;
	while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
	{
		// Schleife durch die Formen
		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))
		{
			// Überprüfen Sie, ob es sich bei der Form um einen Videoframe handelt
			if (System::ObjectExt::Is<VideoFrame>(shape))
			{
				// Extrahieren Sie die Videodatei
				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);

					// Löschen von Ressourcen unter der 'using'-Anweisung
					//System::Details::DisposeGuard __dispose_guard_0{ stream, ASPOSE_CURRENT_FUNCTION };
					// ------------------------------------------
					stream->Write(buffer, 0, buffer->get_Length());
				}
			}
		}
	}
}

Holen Sie sich eine kostenlose Lizenz

Um die API ohne Evaluierungseinschränkungen zu testen, können Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Videos mit C++ in PowerPoint Präsentationen einbetten. Außerdem haben Sie gesehen, wie Sie eingebettete Videos aus PowerPoint Präsentationen mit Aspose.Slides for C++ API extrahieren. Es ist eine robuste API, die viele zusätzliche Funktionen für die Arbeit mit PowerPoint Dateien bietet. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.

Siehe auch

Tipp: Vielleicht möchten Sie den kostenlosen Aspose [PowerPoint to Video] Konverter 1 ausprobieren, da Sie damit Ihre Präsentationen in beeindruckende Videos mit Übergangseffekten umwandeln können.