Marco de Video
Un video bien colocado en una presentación puede hacer que tu mensaje sea más convincente y aumentar los niveles de compromiso con tu audiencia.
PowerPoint te permite agregar videos a una diapositiva en una presentación de dos maneras:
- Agregar o incrustar un video local (almacenado en tu máquina)
- Agregar un video en línea (de una fuente web como YouTube).
Para permitirte agregar videos (objetos de video) a una presentación, Aspose.Slides proporciona la interfaz IVideo, la interfaz IVideoFrame y otros tipos relevantes.
Crear Marco de Video Incrustado
Si el archivo de video que deseas agregar a tu diapositiva está almacenado localmente, puedes crear un marco de video para incrustar el video en tu presentación.
- Crea una instancia de la clase Presentation.
- Obtén una referencia de la diapositiva a través de su índice.
- Agrega un objeto IVideo y pasa la ruta del archivo de video para incrustar el video con la presentación.
- Agrega un objeto IVideoFrame para crear un marco para el video.
- Guarda la presentación modificada.
Este código C# te muestra cómo agregar un video almacenado localmente a una presentación:
// Instancia la clase Presentation
using (Presentation pres = new Presentation("pres.pptx"))
{
// Carga el video
using (FileStream fileStream = new FileStream("Wildlife.mp4", FileMode.Open, FileAccess.Read))
{
IVideo video = pres.Videos.AddVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Obtiene la primera diapositiva y agrega un videoframe
pres.Slides[0].Shapes.AddVideoFrame(10, 10, 150, 250, video);
// Guarda la presentación en el disco
pres.Save("pres-with-video.pptx", SaveFormat.Pptx);
}
}
Alternativamente, puedes agregar un video pasando su ruta de archivo directamente al método AddVideoFrame:
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 150, "video1.avi");
}
Crear Marco de Video con Video de una Fuente Web
Microsoft PowerPoint 2013 y versiones posteriores soporta videos de YouTube en las presentaciones. Si el video que deseas usar está disponible en línea (por ejemplo, en YouTube), puedes agregarlo a tu presentación a través de su enlace web.
- Crea una instancia de la clase Presentation.
- Obtén una referencia de la diapositiva a través de su índice.
- Agrega un objeto IVideo y pasa el enlace al video.
- Establece una miniatura para el marco de video.
- Guarda la presentación.
Este código C# te muestra cómo agregar un video de la web a una diapositiva en una presentación de PowerPoint:
public static void Run()
{
// Instancia un objeto Presentation que representa un archivo de presentación
using (Presentation pres = new Presentation())
{
AddVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}
}
private static void AddVideoFromYouTube(Presentation pres, string videoId)
{
// Agrega un VideoFrame
IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
videoFrame.PlayMode = VideoPlayModePreset.Auto;
// Carga la 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));
}
}
Extraer Video de una Diapositiva
Además de agregar videos a las diapositivas, Aspose.Slides te permite extraer videos incrustados en presentaciones.
- Crea una instancia de la clase Presentation para cargar la presentación que contiene el video.
- Itera a través de todos los objetos ISlide.
- Itera a través de todos los objetos IShape para encontrar un VideoFrame.
- Guarda el video en el disco.
Este código C# te muestra cómo extraer el video de una diapositiva de presentación:
// Instancia un objeto Presentation que representa un archivo de presentación
Presentation presentation = new Presentation("Video.pptx");
// Itera a través de las diapositivas
foreach (ISlide slide in presentation.Slides)
{
// Itera a través de las formas
foreach (IShape shape in presentation.Slides[0].Shapes)
{
// Guarda el video en el disco una vez que se encuentra el VideoFrame que contiene el video
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);
}
}
}
}