PHP を使用してプレゼンテーション内のビデオフレームを管理
プレゼンテーションに適切に配置されたビデオは、メッセージをより説得力のあるものにし、観客とのエンゲージメントレベルを向上させます。
PowerPoint では、プレゼンテーションのスライドにビデオを追加する方法が 2 つあります。
- ローカルビデオを追加または埋め込み(マシンに保存されているもの)
- オンラインビデオを追加(YouTube などのウェブソースから)。
プレゼンテーションにビデオ(ビデオオブジェクト)を追加できるように、Aspose.Slides は IVideo インターフェイス、IVideoFrame インターフェイス、その他の関連型を提供します。
埋め込みビデオフレームの作成
スライドに追加したいビデオファイルがローカルに保存されている場合、ビデオフレームを作成してプレゼンテーションにビデオを埋め込むことができます。
- Presentation クラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- IVideo オブジェクトを追加し、ビデオファイルのパスを渡してプレゼンテーションにビデオを埋め込みます。
- IVideoFrame オブジェクトを追加してビデオのフレームを作成します。
- 変更されたプレゼンテーションを保存します。
この PHP コードは、ローカルに保存されたビデオをプレゼンテーションに追加する方法を示しています。
# Presentation クラスのインスタンスを作成します
$pres = new Presentation("pres.pptx");
try {
# ビデオをロードします
$fileStream = new Java("java.io.FileInputStream", "Wildlife.mp4");
$video = $pres->getVideos()->addVideo($fileStream, LoadingStreamBehavior->KeepLocked);
# 最初のスライドを取得し、ビデオフレームを追加します
$pres->getSlides()->get_Item(0)->getShapes()->addVideoFrame(10, 10, 150, 250, $video);
# プレゼンテーションをディスクに保存します
$pres->save("pres-with-video.pptx", SaveFormat::Pptx);
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
または、ファイルパスを直接 addVideoFrame(float x, float y, float width, float height, IVideo video) メソッドに渡すことでビデオを追加できます。
$pres = new Presentation();
try {
$sld = $pres->getSlides()->get_Item(0);
$vf = $sld->getShapes()->addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Web ソースからのビデオでビデオフレームを作成
Microsoft の PowerPoint 2013 以降 は、プレゼンテーションで YouTube ビデオをサポートしています。使用したいビデオがオンライン(例: YouTube)で利用可能な場合、そのウェブリンクを通じてプレゼンテーションに追加できます。
- Presentation クラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- IVideo オブジェクトを追加し、ビデオへのリンクを渡します。
- ビデオフレームのサムネイルを設定します。
- プレゼンテーションを保存します。
この PHP コードは、ウェブからビデオを取得して PowerPoint プレゼンテーションのスライドに追加する方法を示しています。
# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します
$pres = new Presentation();
try {
addVideoFromYouTube($pres, "Tj75Arhq5ho");
$pres->save("out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
スライドからビデオを抽出
スライドにビデオを追加するだけでなく、Aspose.Slides ではプレゼンテーションに埋め込まれたビデオを抽出することもできます。
- Presentation クラスのインスタンスを作成し、ビデオが含まれるプレゼンテーションをロードします。
- すべての ISlide オブジェクトを反復処理します。
- すべての IShape オブジェクトを反復処理して、VideoFrame を見つけます。
- ビデオをディスクに保存します。
この PHP コードは、プレゼンテーションのスライドからビデオを抽出する方法を示しています。
# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します
$pres = new Presentation("VideoSample.pptx");
try {
foreach($pres->getSlides() as $slide) {
foreach($slide->getShapes() as $shape) {
if (java_instanceof($shape, new JavaClass("com.aspose.slides.VideoFrame"))) {
$vf = $shape;
$type = $vf->getEmbeddedVideo()->getContentType();
$ss = $type->lastIndexOf('-');
$buffer = $vf->getEmbeddedVideo()->getBinaryData();
# ファイル拡張子を取得します
$charIndex = $type->indexOf("/");
$type = $type->substring($charIndex + 1);
$fop = new Java("java.io.FileOutputStream", "testing2." . $type);
$fop->write($buffer);
$fop->flush();
$fop->close();
}
}
}
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
VideoFrame の再生パラメータで変更できるものは何ですか?
再生モード(自動またはクリック時)とループ設定https://reference.aspose.com/slides/php-java/aspose.slides/videoframe/setplaymode/(auto or on click)およびhttps://reference.aspose.com/slides/php-java/aspose.slides/videoframe/setplayloopmode/(looping)を制御できます。これらのオプションは VideoFrame オブジェクトのプロパティを通じて利用可能です。
ビデオを追加すると PPTX ファイルのサイズに影響しますか?
はい。ローカルビデオを埋め込むと、バイナリデータがドキュメントに含まれるため、プレゼンテーションのサイズはファイルサイズに比例して増加します。オンラインビデオを追加すると、リンクとサムネイルが埋め込まれるだけなので、サイズ増加は小さくなります。
既存の VideoFrame 内のビデオを、位置やサイズを変更せずに置き換えることはできますか?
はい。フレーム内の video content を入れ替えても、シェイプのジオメトリは保持されます。これは既存レイアウトのメディアを更新する一般的なシナリオです。
埋め込まれたビデオのコンテンツタイプ(MIME)を判別できますか?
はい。埋め込まれたビデオには content type があり、読み取って使用できます。例えばディスクに保存する際などです。