Incrustar video en PowerPoint usando C#

Los cuadros de video se usan en presentaciones de PowerPoint para demostrar algo o para atraer a la audiencia. A menudo, los videos se usan para ahorrar tiempo y hacer que las presentaciones sean más efectivas. En este artículo, aprenderá cómo trabajar con videos en presentaciones mediante programación. En particular, el artículo cubrirá cómo incrustar o extraer un video en una presentación de PowerPoint usando C#.

.NET API para incrustar video en presentaciones de PowerPoint

Para incrustar o extraer videos en presentaciones de PowerPoint, usaremos Aspose.Slides for .NET. La API está diseñada para crear y manipular documentos de PowerPoint y OpenOffice. Puede instalar la API a través de NuGet o descargar su DLL.

PM> Install-Package Aspose.Slides.NET

Incrustar un video en una presentación de PowerPoint usando C#

Los siguientes son los pasos para incrustar un video en una presentación de PowerPoint usando C#.

El siguiente ejemplo de código muestra cómo incrustar un video en una presentación de PowerPoint usando C#.

// Instanciar la clase de presentación que representa el PPTX
using (Presentation pres = new Presentation())
{
    // Obtener la primera diapositiva
    ISlide sld = pres.Slides[0];

    // Agregar video a la presentación
    IVideo vid = pres.Videos.AddVideo(new FileStream("Wildlife.mp4", FileMode.Open));

    // Agregar cuadro de video
    IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 350, vid);

    // Asignar video a cuadro de video
    vf.EmbeddedVideo = vid;

    // Establecer el modo de reproducción y el volumen del video
    vf.PlayMode = VideoPlayModePreset.Auto;
    vf.Volume = AudioVolumeMode.Loud;

    // Escriba el archivo PPTX en el disco
    pres.Save("VideoFrame_out.pptx", SaveFormat.Pptx);
}

Incrustar video en presentaciones desde una fuente web

También puede incrustar un video en las presentaciones de PowerPoint desde una fuente web. Los siguientes son los pasos para lograrlo.

El siguiente ejemplo de código muestra cómo incrustar un video en la presentación desde una fuente web.

using (Presentation pres = new Presentation())
{
    // identificación de vídeo
    string videoId = "Tj75Arhq5ho";

    // Agregar cuadro de video
    IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
    videoFrame.PlayMode = VideoPlayModePreset.Auto;

    // Cargar miniatura
    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));
    }

    // Guardar presentación
    pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}

Extraer video de una presentación de PowerPoint en C#

Aspose.Slides for .NET también le permite extraer un video de una presentación. A continuación se detallan los sencillos pasos para lograrlo.

  • Primero, cargue el archivo de PowerPoint usando la clase Presentation.
  • Luego, recorra cada ISlide en la colección Presentation.Slides.
  • Para cada objeto ISlide, recorra la colección de IShape en él.
  • Si IShape es un VideoFrame, extraiga y guarde el video incrustado.

El siguiente ejemplo de código muestra cómo extraer videos de una presentación de PowerPoint usando C#.

// Cargar un archivo de presentación 
Presentation presentation = new Presentation("Video.pptx");

// Pasar por las diapositivas de la presentación
foreach (ISlide slide in presentation.Slides)
{
    // Bucle a través de formas
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        if (shape is VideoFrame)
        {
            // Extraer y guardar video
            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);
            }
        }
    }
}

Obtenga una licencia de API gratuita

Puede usar Aspose.Slides for .NET sin limitaciones de evaluación solicitando una licencia temporal.

Conclusión

En este artículo, ha aprendido a incrustar videos en presentaciones de PowerPoint usando C#. Además, ha visto cómo extraer videos de una presentación mediante programación. Además de esto, puede visitar la documentación para explorar más sobre Aspose.Slides for .NET. Además, puede publicar sus consultas en nuestro foro.

Ver también