使用 C# 在 PowerPoint 中嵌入視頻

PowerPoint 演示文稿中使用視頻幀來演示某些內容或吸引觀眾。通常,視頻用於節省時間並使演示更有效。在本文中,您將學習如何以編程方式處理演示文稿中的視頻。特別是,本文將介紹如何使用 C# 在 PowerPoint 演示文稿中嵌入或提取視頻。

用於在 PowerPoint 演示文稿中嵌入視頻的 .NET API

為了在 PowerPoint 演示文稿中嵌入或提取視頻,我們將使用 Aspose.Slides for .NET。該 API 旨在創建和操作 PowerPoint 和 OpenOffice 文檔。您可以通過 NuGet下載 其 DLL 安裝 API。

PM> Install-Package Aspose.Slides.NET

使用 C# 在 PowerPoint 演示文稿中嵌入視頻

以下是使用 C# 在 PowerPoint 演示文稿中嵌入視頻的步驟。

以下代碼示例演示如何使用 C# 在 PowerPoint 演示文稿中嵌入視頻。

// 實例化表示 PPTX 的 Presentation 類
using (Presentation pres = new Presentation())
{
    // 獲取第一張幻燈片
    ISlide sld = pres.Slides[0];

    // 將視頻添加到演示文稿
    IVideo vid = pres.Videos.AddVideo(new FileStream("Wildlife.mp4", FileMode.Open));

    // 添加視頻幀
    IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 350, vid);

    // 將視頻分配給視頻幀
    vf.EmbeddedVideo = vid;

    // 設置視頻的播放模式和音量
    vf.PlayMode = VideoPlayModePreset.Auto;
    vf.Volume = AudioVolumeMode.Loud;

    // 將 PPTX 文件寫入磁盤
    pres.Save("VideoFrame_out.pptx", SaveFormat.Pptx);
}

在來自 Web 源的演示文稿中嵌入視頻

您還可以將來自 Web 源的視頻嵌入到 PowerPoint 演示文稿中。以下是實現此目的的步驟。

以下代碼示例顯示瞭如何將視頻從 Web 源嵌入到演示文稿中。

using (Presentation pres = new Presentation())
{
    // 視頻編號
    string videoId = "Tj75Arhq5ho";

    // 添加視頻幀
    IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
    videoFrame.PlayMode = VideoPlayModePreset.Auto;

    // 加載縮略圖
    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));
    }

    // 保存演示文稿
    pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}

從 C# 中的 PowerPoint 演示文稿中提取視頻

Aspose.Slides for .NET 還允許您從演示文稿中提取視頻。以下是實現此目的的簡單步驟。

以下代碼示例演示如何使用 C# 從 PowerPoint 演示文稿中提取視頻。

// 加載演示文稿文件 
Presentation presentation = new Presentation("Video.pptx");

// 循環瀏覽演示文稿中的幻燈片
foreach (ISlide slide in presentation.Slides)
{
    // 遍歷形狀
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        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);
            }
        }
    }
}

獲取免費的 API 許可證

通過申請臨時許可,您可以在沒有評估限制的情況下使用 Aspose.Slides for .NET。

結論

在本文中,您了解瞭如何使用 C# 在 PowerPoint 演示文稿中嵌入視頻。此外,您還了解瞭如何以編程方式從演示文稿中提取視頻。除此之外,您可以訪問 文檔 來探索更多關於 Aspose.Slides for .NET 的信息。此外,您可以將您的查詢發佈到我們的論壇

也可以看看