Gérer les cadres vidéo dans les présentations en .NET
Une vidéo bien placée dans une présentation peut rendre votre message plus percutant et augmenter le niveau d’engagement de votre audience.
PowerPoint vous permet d’ajouter des vidéos à une diapositive d’une présentation de deux manières :
- Ajouter ou incorporer une vidéo locale (stockée sur votre ordinateur)
- Ajouter une vidéo en ligne (provenant d’une source web telle que YouTube).
Pour vous permettre d’ajouter des vidéos (objets vidéo) à une présentation, Aspose.Slides fournit l’interface IVideo, l’interface IVideoFrame et d’autres types pertinents.
Créer un cadre vidéo intégré
Si le fichier vidéo que vous souhaitez ajouter à votre diapositive est stocké localement, vous pouvez créer un cadre vidéo pour intégrer la vidéo dans votre présentation.
- Créer une instance de la classe Presentation
- Obtenir la référence d’une diapositive via son indice.
- Ajouter un objet IVideo et transmettre le chemin du fichier vidéo pour intégrer la vidéo à la présentation.
- Ajouter un objet IVideoFrame pour créer un cadre pour la vidéo.
- Enregistrer la présentation modifiée.
// Instancie la classe Presentation
using (Presentation pres = new Presentation("pres.pptx"))
{
// Charge la vidéo
using (FileStream fileStream = new FileStream("Wildlife.mp4", FileMode.Open, FileAccess.Read))
{
IVideo video = pres.Videos.AddVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Obtient la première diapositive et ajoute un cadre vidéo
pres.Slides[0].Shapes.AddVideoFrame(10, 10, 150, 250, video);
// Enregistre la présentation sur le disque
pres.Save("pres-with-video.pptx", SaveFormat.Pptx);
}
}
Alternativement, vous pouvez ajouter une vidéo en transmettant directement son chemin de fichier à la méthode AddVideoFrame:
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 150, "video1.avi");
}
Créer un cadre vidéo avec une vidéo provenant d’une source Web
Microsoft PowerPoint 2013 et versions ultérieures prend en charge les vidéos YouTube dans les présentations. Si la vidéo que vous souhaitez utiliser est disponible en ligne (par exemple sur YouTube), vous pouvez l’ajouter à votre présentation via son lien web.
- Créer une instance de la classe Presentation
- Obtenir la référence d’une diapositive via son indice.
- Ajouter un objet IVideo et transmettre le lien vers la vidéo.
- Définir une miniature pour le cadre vidéo.
- Enregistrer la présentation.
public static void Run()
{
// Instancie un objet Presentation qui représente un fichier de présentation
using (Presentation pres = new Presentation())
{
AddVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}
}
private static void AddVideoFromYouTube(Presentation pres, string videoId)
{
// Ajoute un VideoFrame
IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
videoFrame.PlayMode = VideoPlayModePreset.Auto;
// Charge la miniature
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));
}
}
Extraire la vidéo d’une diapositive
En plus d’ajouter des vidéos aux diapositives, Aspose.Slides vous permet d’extraire les vidéos intégrées dans les présentations.
- Créer une instance de la classe Presentation pour charger la présentation contenant la vidéo.
- Parcourir tous les objets ISlide.
- Parcourir tous les objets IShape afin de trouver un VideoFrame.
- Enregistrer la vidéo sur le disque.
// Instancie un objet Presentation qui représente un fichier de présentation
Presentation presentation = new Presentation("Video.pptx");
// Parcourt les diapositives
foreach (ISlide slide in presentation.Slides)
{
// Parcourt les formes
foreach (IShape shape in presentation.Slides[0].Shapes)
{
// Enregistre la vidéo sur le disque dès qu'un VideoFrame contenant la vidéo est trouvé
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
Quels paramètres de lecture vidéo peuvent être modifiés pour un VideoFrame ?
Vous pouvez contrôler le mode de lecture (automatique ou au clic) et la boucle. Ces options sont disponibles via les propriétés de l’objet VideoFrame.
L’ajout d’une vidéo affecte-t-il la taille du fichier PPTX ?
Oui. Lorsque vous intégrez une vidéo locale, les données binaires sont incluses dans le document, de sorte que la taille de la présentation augmente proportionnellement à la taille du fichier. Lorsque vous ajoutez une vidéo en ligne, un lien et une miniature sont incorporés, ce qui entraîne une augmentation de taille moindre.
Puis-je remplacer la vidéo d’un VideoFrame existant sans changer sa position et sa taille ?
Oui. Vous pouvez échanger le contenu vidéo à l’intérieur du cadre tout en conservant la géométrie de la forme ; c’est un scénario fréquent pour mettre à jour les médias dans une mise en page existante.
Peut-on déterminer le type de contenu (MIME) d’une vidéo incorporée ?
Oui. Une vidéo incorporée possède un type de contenu que vous pouvez lire et utiliser, par exemple lors de son enregistrement sur le disque.