Incorporer une vidéo dans PowerPoint à l'aide de C#

Les images vidéo sont utilisées dans les présentations PowerPoint pour démontrer quelque chose ou pour attirer le public. Souvent, les vidéos sont utilisées pour gagner du temps et rendre les présentations plus efficaces. Dans cet article, vous apprendrez à utiliser des vidéos dans des présentations par programmation. En particulier, l’article expliquera comment intégrer ou extraire une vidéo dans une présentation PowerPoint à l’aide de C#.

API .NET pour intégrer la vidéo dans les présentations PowerPoint

Afin d’intégrer ou d’extraire des vidéos dans des présentations PowerPoint, nous utiliserons Aspose.Slides for .NET. L’API est conçue pour créer et manipuler des documents PowerPoint et OpenOffice. Vous pouvez soit installer l’API via NuGet ou télécharger sa DLL.

PM> Install-Package Aspose.Slides.NET

Intégrer une vidéo dans une présentation PowerPoint à l’aide de C#

Voici les étapes pour intégrer une vidéo dans une présentation PowerPoint à l’aide de C#.

L’exemple de code suivant montre comment incorporer une vidéo dans une présentation PowerPoint à l’aide de C#.

// Instancier la classe de présentation qui représente le PPTX
using (Presentation pres = new Presentation())
{
    // Obtenir la première diapositive
    ISlide sld = pres.Slides[0];

    // Ajouter une vidéo à la présentation
    IVideo vid = pres.Videos.AddVideo(new FileStream("Wildlife.mp4", FileMode.Open));

    // Ajouter une image vidéo
    IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 350, vid);

    // Affecter la vidéo à l'image vidéo
    vf.EmbeddedVideo = vid;

    // Définir le mode de lecture et le volume de la vidéo
    vf.PlayMode = VideoPlayModePreset.Auto;
    vf.Volume = AudioVolumeMode.Loud;

    // Écrire le fichier PPTX sur le disque
    pres.Save("VideoFrame_out.pptx", SaveFormat.Pptx);
}

Intégrer une vidéo dans des présentations à partir d’une source Web

Vous pouvez également intégrer une vidéo dans les présentations PowerPoint à partir d’une source Web. Voici les étapes pour y parvenir.

L’exemple de code suivant montre comment intégrer une vidéo dans la présentation à partir d’une source Web.

using (Presentation pres = new Presentation())
{
    // ID vidéo
    string videoId = "Tj75Arhq5ho";

    // Ajouter une image vidéo
    IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
    videoFrame.PlayMode = VideoPlayModePreset.Auto;

    // Charger la vignette
    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));
    }

    // Enregistrer la présentation
    pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}

Extraire une vidéo d’une présentation PowerPoint en C#

Aspose.Slides for .NET vous permet également d’extraire une vidéo d’une présentation. Vous trouverez ci-dessous les étapes simples pour y parvenir.

  • Tout d’abord, chargez le fichier PowerPoint à l’aide de la classe Presentation.
  • Ensuite, parcourez chaque ISlide dans la collection Presentation.Slides.
  • Pour chaque objet ISlide, parcourez la collection de IShape qu’il contient.
  • Si IShape est un VideoFrame, extrayez et enregistrez la vidéo intégrée.

L’exemple de code suivant montre comment extraire des vidéos d’une présentation PowerPoint à l’aide de C#.

// Charger un fichier de présentation 
Presentation presentation = new Presentation("Video.pptx");

// Parcourir les diapositives de la présentation
foreach (ISlide slide in presentation.Slides)
{
    // Boucle à travers les formes
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        if (shape is VideoFrame)
        {
            // Extraire et enregistrer la vidéo
            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);
            }
        }
    }
}

Obtenez une licence API gratuite

Vous pouvez utiliser Aspose.Slides for .NET sans limitation d’évaluation en demandant une licence temporaire.

Conclusion

Dans cet article, vous avez appris à intégrer des vidéos dans des présentations PowerPoint à l’aide de C#. De plus, vous avez vu comment extraire des vidéos d’une présentation par programmation. En plus de cela, vous pouvez visiter la documentation pour en savoir plus sur Aspose.Slides for .NET. Vous pouvez également poster vos questions sur notre forum.

Voir également