Verwalten von Video-Frames in Präsentationen mit Java
Ein gut platziertes Video in einer Präsentation kann Ihre Botschaft überzeugender machen und das Engagement-Level Ihres Publikums erhöhen.
PowerPoint ermöglicht das Hinzufügen von Videos zu einer Folie in einer Präsentation auf zwei Arten:
- Lokales Video hinzufügen oder einbetten (auf Ihrem Rechner gespeichert)
- Online-Video hinzufügen (von einer Web-Quelle wie YouTube).
Damit Sie Videos (Video-Objekte) zu einer Präsentation hinzufügen können, stellt Aspose.Slides das Interface IVideo , das Interface IVideoFrame und weitere relevante Typen bereit.
Eingebettete Video-Frames erstellen
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 Klasse Presentation.
- Holen Sie sich eine Referenz auf eine 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 Java-Code zeigt, wie Sie ein lokal gespeichertes Video zu einer Präsentation hinzufügen:
// Instanziert die Presentation-Klasse
Presentation pres = new Presentation("pres.pptx");
try {
// Lädt das Video
FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
IVideo 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 die Festplatte
pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Alternativ können Sie ein Video hinzufügen, indem Sie den Dateipfad direkt an die Methode addVideoFrame(float x, float y, float width, float height, IVideo video) übergeben:
Presentation pres = new Presentation();
try {
ISlide sld = pres.getSlides().get_Item(0);
IVideoFrame vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
if (pres != null) pres.dispose();
}
Video-Frames mit Videos aus Web-Quellen erstellen
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 Web-Link in Ihre Präsentation einfügen.
- Erstellen Sie eine Instanz der Klasse Presentation.
- Holen Sie sich eine Referenz auf eine 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 Java-Code zeigt, 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
Presentation pres = new Presentation();
try {
addVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.save("out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
private static void addVideoFromYouTube(Presentation pres, String videoID)
{
// Fügt einen VideoFrame hinzu
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
videoFrame.setPlayMode(VideoPlayModePreset.Auto);
// Lädt das Miniaturbild
String thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg";
URL url;
try {
url = new URL(thumbnailUri);
videoFrame.getPictureFormat().getPicture().setImage(pres.getImages().addImage(url.openStream()));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
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 Klasse Presentation, um die Präsentation zu laden, die das Video enthält.
- Iterieren Sie über alle ISlide-Objekte.
- Iterieren Sie über alle IShape-Objekte, um einen VideoFrame-Objekt zu finden.
- Speichern Sie das Video auf der Festplatte.
Dieser Java-Code zeigt, wie Sie das Video auf einer Präsentationsfolie extrahieren:
// Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
Presentation pres = new Presentation("VideoSample.pptx");
try {
for (ISlide slide : pres.getSlides())
{
for (IShape shape : slide.getShapes())
{
if (shape instanceof VideoFrame)
{
IVideoFrame vf = (IVideoFrame) shape;
String type = vf.getEmbeddedVideo().getContentType();
int ss = type.lastIndexOf('-');
byte[] buffer = vf.getEmbeddedVideo().getBinaryData();
//Ermittelt die Dateierweiterung
int charIndex = type.indexOf("/");
type = type.substring(charIndex + 1);
FileOutputStream fop = new FileOutputStream("testing2." + type);
fop.write(buffer);
fop.flush();
fop.close();
}
}
}
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
FAQ
Welche Wiedergabeparameter können für ein VideoFrame geändert werden?
Sie können den Wiedergabemodus (automatisch oder per Klick) und das Looping steuern. Diese Optionen sind über die Eigenschaften des VideoFrame-Objekts verfügbar.
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, sodass die Präsentationsgröße proportional zur Dateigröße wächst. Wenn Sie ein Online-Video hinzufügen, werden ein Link und ein Miniaturbild eingebettet, wodurch 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 innerhalb des Frames austauschen, während Sie die Geometrie der Form beibehalten; dies ist ein übliches Szenario zum Aktualisieren von Medien in einem bestehenden Layout.
Kann der Inhaltstyp (MIME) eines eingebetteten Videos ermittelt werden?
Ja. Ein eingebettetes Video hat einen Inhaltstyp, den Sie auslesen und zum Beispiel beim Speichern auf die Festplatte verwenden können.