Video-Frames in Präsentationen in .NET verwalten
Ein gut platziertes Video in einer Präsentation kann Ihre Botschaft überzeugender machen und das Engagement‑Level Ihres Publikums erhöhen.
PowerPoint ermöglicht es Ihnen, Videos auf einer Folie einer Präsentation auf zwei Arten hinzuzufügen:
- Ein lokales Video hinzufügen oder einbetten (auf Ihrem Computer gespeichert)
- Ein Online‑Video hinzufügen (aus einer Web‑Quelle 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.
Ein eingebettetes Video‑Frame erstellen
Wenn die Videodatei, die Sie zu Ihrer Folie hinzufügen möchten, lokal gespeichert ist, können Sie ein Video‑Frame erstellen, um das Video in Ihre Präsentation einzubetten.
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie sich den Verweis 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 C#‑Code zeigt, wie Sie ein lokal gespeichertes Video zu einer Präsentation hinzufügen:
// Instanziert die Presentation-Klasse
using (Presentation pres = new Presentation("pres.pptx"))
{
// Lädt das Video
using (FileStream fileStream = new FileStream("Wildlife.mp4", FileMode.Open, FileAccess.Read))
{
IVideo video = pres.Videos.AddVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Holt die erste Folie und fügt ein Video-Frame hinzu
pres.Slides[0].Shapes.AddVideoFrame(10, 10, 150, 250, video);
// Speichert die Präsentation auf dem Datenträger
pres.Save("pres-with-video.pptx", SaveFormat.Pptx);
}
}
Alternativ können Sie ein Video hinzufügen, indem Sie dessen Dateipfad direkt an die Methode AddVideoFrame übergeben:
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 150, "video1.avi");
}
Ein Video‑Frame mit Video aus einer Web‑Quelle erstellen
Microsoft PowerPoint 2013 und neuer unterstützt YouTube‑Videos in Präsentationen. Wenn das Video, das Sie verwenden möchten, online verfügbar ist (z. B. auf YouTube), können Sie es über dessen Web‑Link zu Ihrer Präsentation hinzufügen.
- Erstellen Sie eine Instanz der Presentation-Klasse
- Holen Sie sich den Verweis 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 das Video‑Frame fest.
- Speichern Sie die Präsentation.
Dieser C#‑Code zeigt, wie Sie ein Video aus dem Web zu einer Folie in einer PowerPoint‑Präsentation hinzufügen:
public static void Run()
{
// Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
using (Presentation pres = new Presentation())
{
AddVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}
}
private static void AddVideoFromYouTube(Presentation pres, string videoId)
{
// Fügt ein VideoFrame hinzu
IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
videoFrame.PlayMode = VideoPlayModePreset.Auto;
// Lädt das Miniaturbild
using (WebClient client = new WebClient())
{
string thumbnailUri = "http://img.youtube.com/vi/" + videoId + "/hqdefault.jpg";
videoFrame.PictureFormat.Picture.Image = pres.Images.AddImage(client.DownloadData(thumbnailUri));
}
}
Video‑Untertitel verwalten
Aspose.Slides ermöglicht es Ihnen, geschlossene Untertitel für Video‑Frames in PowerPoint‑Präsentationen zu verwalten. Untertitel werden im WebVTT‑Format gespeichert und über die Eigenschaft IVideoFrame.CaptionTracks bereitgestellt.
Untertitel zu einem Video‑Frame hinzufügen
So fügen Sie Untertitel zu einem Video‑Frame hinzu:
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Fügen Sie der Präsentation ein Video hinzu.
- Fügen Sie einem Folie ein IVideoFrame-Objekt hinzu.
- Verwenden Sie die Sammlung CaptionTracks, um einen WebVTT‑Untertitel‑Track hinzuzufügen.
- Speichern Sie die geänderte Präsentation.
Der folgende Code zeigt, wie Sie Untertitel zu einem Video‑Frame hinzufügen:
using (Presentation presentation = new Presentation())
{
byte[] videoData = File.ReadAllBytes("video.mp4");
IVideo video = presentation.Videos.AddVideo(videoData);
ISlide slide = presentation.Slides[0];
IVideoFrame videoFrame = slide.Shapes.AddVideoFrame(0, 0, 100, 100, video);
// Fügt eine neue Untertitelspur aus einer WebVTT-Datei hinzu.
videoFrame.CaptionTracks.Add("English", "track.vtt");
presentation.Save("video_with_captions.pptx", SaveFormat.Pptx);
}
Die Schnittstelle ICaptionsCollection bietet außerdem eine Überladung, mit der Sie Untertitel aus einem Stream hinzufügen können.
Untertitel aus einem Video‑Frame extrahieren
So extrahieren Sie Untertitel aus einem Video‑Frame:
- Laden Sie die Präsentation, die das Video enthält.
- Finden Sie das Ziel‑IVideoFrame-Objekt.
- Iterieren Sie über die Sammlung CaptionTracks.
- Speichern Sie jeden Untertitel‑Track in einer
.vtt‑Datei.
Der folgende Code zeigt, wie Sie Untertitel aus einem Video‑Frame extrahieren:
using (Presentation presentation = new Presentation("video_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
foreach (IShape shape in slide.Shapes)
{
if (shape is IVideoFrame videoFrame)
{
foreach (ICaptions captionTrack in videoFrame.CaptionTracks)
{
// Speichert die Untertitelspur in einer WebVTT-Datei.
string filePath = $"{captionTrack.CaptionId}.vtt";
File.WriteAllBytes(filePath, captionTrack.BinaryData);
}
}
}
}
Jedes ICaptions-Objekt stellt den Untertitel‑Bezeichner, das Label, die Binärdaten und den Untertiteltext als UTF‑8‑Zeichenfolge bereit.
Untertitel aus einem Video‑Frame entfernen
So entfernen Sie Untertitel aus einem Video‑Frame:
- Laden Sie die Präsentation, die das Video enthält.
- Holen Sie das Ziel‑IVideoFrame-Objekt.
- Entfernen Sie Untertitel‑Tracks aus der Sammlung CaptionTracks.
- Speichern Sie die geänderte Präsentation.
Der folgende Code zeigt, wie Sie alle Untertitel aus einem Video‑Frame entfernen:
using (Presentation presentation = new Presentation("video_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
IVideoFrame videoFrame = slide.Shapes[0] as IVideoFrame;
// Entfernt alle Untertitel vom Video-Frame.
videoFrame.CaptionTracks.Clear();
presentation.Save("video_without_captions.pptx", SaveFormat.Pptx);
}
Wenn Sie nur einen Untertitel‑Track entfernen müssen, verwenden Sie die Methoden Remove oder RemoveAt anstelle von Clear.
Video aus einer Folie 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 ein VideoFrame zu finden.
- Speichern Sie das Video auf dem Datenträger.
Dieser C#‑Code zeigt, wie Sie das Video einer Präsentationsfolie extrahieren:
// Instanziert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
Presentation presentation = new Presentation("Video.pptx");
// Durchläuft die Folien
foreach (ISlide slide in presentation.Slides)
{
// Durchläuft die Shapes
foreach (IShape shape in presentation.Slides[0].Shapes)
{
// Speichert das Video auf dem Datenträger, sobald ein VideoFrame mit Video gefunden wird
if (shape is VideoFrame)
{
IVideoFrame vf = shape as IVideoFrame;
String type = vf.EmbeddedVideo.ContentType;
int ss = type.LastIndexOf('/');
type = type.Remove(0, type.LastIndexOf('/') + 1);
Byte[] buffer = vf.EmbeddedVideo.BinaryData;
using (FileStream stream = new FileStream("NewVideo_out." + type, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.Write(buffer, 0, buffer.Length);
}
}
}
}
FAQ
Welche Video‑Wiedergabeparameter können für ein Video‑Frame geändert werden?
Sie können den playback mode (automatisch oder per Klick) und das looping steuern. Diese Optionen stehen über die Eigenschaften des VideoFrame-Objekts zur Verfügung.
Beeinflusst das Hinzufügen eines Videos die PPTX‑Dateigröße?
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, sodass die Größe weniger stark zunimmt.
Kann ich das Video in einem vorhandenen Video‑Frame ersetzen, ohne Position und Größe zu ändern?
Ja. Sie können den video content innerhalb des Frames austauschen, während Sie 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 type, den Sie auslesen und verwenden können, zum Beispiel beim Speichern auf dem Datenträger.