Verwalten von Video-Frames in Präsentationen mit PHP
Ein gut platziertes Video in einer Präsentation kann Ihre Botschaft überzeugender machen und das Engagement Ihres Publikums erhöhen.
PowerPoint ermöglicht es Ihnen, Videos in einer Präsentation auf zwei Arten zu einer Folie hinzuzufügen:
- Ein lokales Video hinzufügen oder einbetten (auf Ihrem Rechner gespeichert)
- Ein Online-Video hinzufügen (von einer Webquelle wie YouTube).
Um Ihnen das Hinzufügen von Videos (Videoobjekten) zu einer Präsentation zu ermöglichen, stellt Aspose.Slides die Schnittstelle IVideo, die Schnittstelle IVideoFrame und weitere relevante Typen bereit.
Erstellen eingebetteter VideoFrames
Wenn die Videodatei, die Sie Ihrer Folie hinzufügen möchten, lokal gespeichert ist, können Sie einen Video-Frame erstellen, um das Video in Ihre Präsentation einzubetten.
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie sich den Referenz einer Folie über deren Index.
- Fügen Sie ein IVideo-Objekt hinzu und übergeben Sie den Pfad zur Videodatei, um das Video in die Präsentation einzubetten.
- Fügen Sie ein IVideoFrame-Objekt hinzu, um einen Frame für das Video zu erstellen.
- Speichern Sie die geänderte Präsentation.
Dieser PHP-Code zeigt Ihnen, wie Sie ein lokal gespeichertes Video zu einer Präsentation hinzufügen:
# Instanziert die Presentation-Klasse
$pres = new Presentation("pres.pptx");
try {
# Lädt das Video
$fileStream = new Java("java.io.FileInputStream", "Wildlife.mp4");
$video = $pres->getVideos()->addVideo($fileStream, LoadingStreamBehavior->KeepLocked);
# Holt die erste Folie und fügt einen Video-Frame hinzu
$pres->getSlides()->get_Item(0)->getShapes()->addVideoFrame(10, 10, 150, 250, $video);
# Speichert die Präsentation auf dem Datenträger
$pres->save("pres-with-video.pptx", SaveFormat::Pptx);
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Alternativ können Sie ein Video hinzufügen, indem Sie dessen Dateipfad direkt an die Methode addVideoFrame(float x, float y, float width, float height, IVideo video) übergeben:
$pres = new Presentation();
try {
$sld = $pres->getSlides()->get_Item(0);
$vf = $sld->getShapes()->addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Erstellen von VideoFrames mit Video aus Webquellen
Microsoft PowerPoint 2013 und neuer unterstützt YouTube‑Videos in Präsentationen. Wenn das gewünschte Video online verfügbar ist (z. B. auf YouTube), können Sie es über dessen Weblink zu Ihrer Präsentation hinzufügen.
- Erstellen Sie eine Instanz der Presentation-Klasse
- Holen Sie sich den Referenz einer Folie über deren Index.
- Fügen Sie ein IVideo-Objekt hinzu und übergeben Sie den Link zum Video.
- Legen Sie ein Miniaturbild für den Video‑Frame fest.
- Speichern Sie die Präsentation.
Dieser PHP-Code zeigt Ihnen, wie Sie ein Video aus dem Web zu einer Folie in einer PowerPoint‑Präsentation hinzufügen:
# Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
$pres = new Presentation();
try {
addVideoFromYouTube($pres, "Tj75Arhq5ho");
$pres->save("out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Video aus Folien extrahieren
Neben dem Hinzufügen von Videos zu Folien ermöglicht Aspose.Slides das Extrahieren von in Präsentationen eingebetteten Videos.
- Erstellen Sie eine Instanz der Presentation-Klasse, um die Präsentation zu laden, die das Video enthält.
- Durchlaufen Sie alle ISlide-Objekte.
- Durchlaufen Sie alle IShape-Objekte, um einen VideoFrame zu finden.
- Speichern Sie das Video auf dem Datenträger.
Dieser PHP-Code zeigt Ihnen, wie Sie das Video auf einer Präsentationsfolie extrahieren:
# Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
$pres = new Presentation("VideoSample.pptx");
try {
foreach($pres->getSlides() as $slide) {
foreach($slide->getShapes() as $shape) {
if (java_instanceof($shape, new JavaClass("com.aspose.slides.VideoFrame"))) {
$vf = $shape;
$type = $vf->getEmbeddedVideo()->getContentType();
$ss = $type->lastIndexOf('-');
$buffer = $vf->getEmbeddedVideo()->getBinaryData();
# Ermittelt die Dateierweiterung
$charIndex = $type->indexOf("/");
$type = $type->substring($charIndex + 1);
$fop = new Java("java.io.FileOutputStream", "testing2." . $type);
$fop->write($buffer);
$fop->flush();
$fop->close();
}
}
}
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Welche Wiedergabeparameter können für einen VideoFrame geändert werden?
Sie können den Wiedergabemodus (automatisch oder per Klick) und das Looping steuern. Diese Optionen stehen über die Eigenschaften des VideoFrame-Objekts zur Verfügung.
Wirkt sich das Hinzufügen eines Videos auf die Dateigröße der PPTX aus?
Ja. Wenn Sie ein lokales Video einbetten, werden die Binärdaten in das Dokument aufgenommen, wodurch die Präsentationsgröße proportional zur Dateigröße wächst. Wenn Sie ein Online-Video hinzufügen, werden ein Link und ein Miniaturbild eingebettet, sodass die Größensteigerung geringer ist.
Kann ich das Video in einem bestehenden VideoFrame ersetzen, ohne Position und Größe zu ändern?
Ja. Sie können den Video‑Inhalt im Frame austauschen und dabei die Geometrie der Form beibehalten; dies ist ein gängiges Szenario zum Aktualisieren von Medien in einem bestehenden Layout.
Kann der Inhaltstyp (MIME) eines eingebetteten Videos ermittelt werden?
Ja. Ein eingebettetes Video hat einen Content‑Typ, den Sie auslesen und beispielsweise beim Speichern auf dem Datenträger verwenden können.