C#を使用してPowerPointにビデオを埋め込む

ビデオフレームは、PowerPointプレゼンテーションで、何かをデモンストレーションしたり、聴衆を引き付けるために使用されます。多くの場合、ビデオは時間を節約し、プレゼンテーションをより効果的にするために使用されます。この記事では、プログラムでプレゼンテーションのビデオを操作する方法を学習します。特に、この記事では、C#を使用してPowerPointプレゼンテーションにビデオを埋め込んだり抽出したりする方法について説明します。

PowerPointプレゼンテーションにビデオを埋め込むための.NET API

PowerPointプレゼンテーションにビデオを埋め込んだり抽出したりするには、Aspose.Slides for .NETを使用します。 APIは、PowerPointおよびOpenOfficeドキュメントを作成および操作するように設計されています。 APIは、NuGetまたはダウンロードそのDLLを介してインストールできます。

PM> Install-Package Aspose.Slides.NET

C#を使用してPowerPointプレゼンテーションにビデオを埋め込む

以下は、C#を使用してPowerPointプレゼンテーションにビデオを埋め込む手順です。

  • まず、PowerPointファイルをロードするか、Presentationクラスを使用して新しいファイルを作成します。
  • 次に、ISlideオブジェクトで目的のスライドの参照を取得します。
  • Presentation.Videos.AddVideo()メソッドを使用して、プレゼンテーションのビデオコレクションに新しいビデオを追加し、その参照をIVideoオブジェクトに取得します。
  • ISlide.Shapes.AddVideoFrame(single, single, single, single, IVideo)メソッドを使用して、スライドに新しいビデオフレームを追加します。
  • ビデオフレームの参照をIVideoFrameオブジェクトに取得します。
  • ビデオの再生モードと音量を設定します。
  • 最後に、Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、C#を使用してPowerPointプレゼンテーションにビデオを埋め込む方法を示しています。

// PPTXを表すプレゼンテーションクラスをインスタンス化します
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プレゼンテーションにビデオを埋め込むこともできます。これを実現するための手順は次のとおりです。

  • まず、PowerPointファイルをロードするか、Presentationクラスを使用して新しいファイルを作成します。
  • 次に、ISlideオブジェクトで目的のスライドの参照を取得します。
  • ISlide.Shapes.AddVideoFrame(single, single, single, single, String)メソッドでビデオのURLを指定して、スライドに新しいビデオフレームを追加します。
  • ビデオフレームの参照をIVideoFrameオブジェクトに取得します。
  • ビデオの再生モードと音量を設定します。
  • WebClientを使用してビデオのサムネイルを設定します。
  • Presentation.Save(String, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、Webソースからプレゼンテーションにビデオを埋め込む方法を示しています。

using (Presentation pres = new Presentation())
{
    // ビデオID
    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では、プレゼンテーションからビデオを抽出することもできます。以下は、これを実現するための簡単な手順です。

  • まず、Presentationクラスを使用してPowerPointファイルをロードします。
  • 次に、Presentation.Slidesコレクションの各ISlideをループします。
  • ISlideオブジェクトごとに、その中のIShapeのコレクションをループします。
  • IShapeがVideoFrameの場合は、埋め込まれたビデオを抽出して保存します。

次のコードサンプルは、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の詳細を調べることができます。また、フォーラムにクエリを投稿することもできます。

関連項目