プレゼンテーションでのオーディオ管理(PHP 使用)
オーディオ フレームを作成
Aspose.Slides for PHP via Java を使用すると、スライドにオーディオ ファイルを追加できます。オーディオ ファイルはオーディオ フレームとしてスライドに埋め込まれます。
- Presentation クラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- スライドに埋め込むオーディオ ファイル ストリームを読み込みます。
- 埋め込まれたオーディオ フレーム(オーディオ ファイルを含む)をスライドに追加します。
- AudioFrame オブジェクトが公開する PlayMode と
Volumeを設定します。 - 変更されたプレゼンテーションを保存します。
この PHP コードは、スライドに埋め込まれたオーディオ フレームを追加する方法を示しています:
// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します
$pres = new Presentation();
try {
# 最初のスライドを取得します
$sld = $pres->getSlides()->get_Item(0);
# wav サウンドファイルをストリームにロードします
$fstr = new Java("java.io.FileInputStream", new Java("java.io.File", "audio.wav"));
# オーディオ フレームを追加します
$audioFrame = $sld->getShapes()->addAudioFrameEmbedded(50, 150, 100, 100, $fstr);
$fstr->close();
# オーディオの再生モードと音量を設定します
$audioFrame->setPlayMode(AudioPlayModePreset->Auto);
$audioFrame->setVolume(AudioVolumeMode->Loud);
# PowerPoint ファイルを書き出してディスクに保存します
$pres->save("AudioFrameEmbed_out.pptx", SaveFormat::Pptx);
} catch(JavaException e) {
} finally {
if (!java_is_null($pres)) $pres.dispose();
}
オーディオ フレームのサムネイルを変更
プレゼンテーションにオーディオ ファイルを追加すると、オーディオは標準のデフォルト画像が付いたフレームとして表示されます(以下の画像参照)。オーディオ フレームのプレビュー画像(好きな画像)に変更できます。
この PHP コードは、オーディオ フレームのサムネイルまたはプレビュー画像を変更する方法を示しています:
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
# 指定された位置とサイズでスライドにオーディオ フレームを追加します。
$audioStream = new Java("java.io.FileInputStream", "sample2.mp3");
$audioFrame = $slide->getShapes()->addAudioFrameEmbedded(150, 100, 50, 50, $audioStream);
$audioStream->close();
# プレゼンテーションのリソースに画像を追加します。
$picture;
$image = Images->fromFile("eagle.jpeg");
try {
$picture = $presentation->getImages()->addImage($image);
} finally {
if (!java_is_null($image)) {
$image->dispose();
}
}
# オーディオ フレームの画像を設定します。
$audioFrame->getPictureFormat()->getPicture()->setImage($picture);// <-----
# 変更されたプレゼンテーションをディスクに保存します
$presentation->save("example_out.pptx", SaveFormat::Pptx);
} catch (JavaException $e) {
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
オーディオ 再生オプションを変更
Aspose.Slides for PHP via Java を使用すると、オーディオの再生やプロパティを制御するオプションを変更できます。たとえば、音量を調整したり、ループ再生を設定したり、オーディオ アイコンを非表示にしたりできます。
Microsoft PowerPoint の Audio Options ペイン:

PowerPoint Audio Options が Aspose.Slides の AudioFrame プロパティに対応:
- Start ドロップダウンは AudioFrame::setPlayMode メソッドに対応
- Volume は AudioFrame::setVolume メソッドに対応
- Play Across Slides は AudioFrame::setPlayAcrossSlides メソッドに対応
- Loop until Stopped は AudioFrame::setPlayLoopMode メソッドに対応
- Hide During Show は AudioFrame::setHideAtShowing メソッドに対応
- Rewind after Playing は AudioFrame::setRewindAudio メソッドに対応
PowerPoint Editing オプションが Aspose.Slides の AudioFrame プロパティに対応:
- Fade In は AudioFrame::setFadeInDuration メソッドに対応
- Fade Out は AudioFrame::setFadeOutDuration メソッドに対応
- Trim Audio Start Time は AudioFrame::setTrimFromStart メソッドに対応
- Trim Audio End Time の値はオーディオの長さから AudioFrame::setTrimFromEnd メソッドの値を引いたものに等しい
PowerPoint のオーディオ コントロール パネルの Volume controll は AudioFrame::setVolumeValue メソッドに対応し、音量をパーセンテージで変更できます。
オーディオ 再生オプションを変更する手順:
- Create または取得した Audio Frame を使用します。
- 調整したい Audio Frame プロパティに新しい値を設定します。
- 変更された PowerPoint ファイルを保存します。
この PHP コードは、オーディオのオプションを調整する操作を示しています:
$pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
# AudioFrame シェイプを取得します
$audioFrame = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# クリック時に再生するように再生モードを設定します
$audioFrame->setPlayMode(AudioPlayModePreset->OnClick);
# 音量を低に設定します
$audioFrame->setVolume(AudioVolumeMode->Low);
# スライド間でオーディオを再生するように設定します
$audioFrame->setPlayAcrossSlides(true);
# オーディオのループを無効にします
$audioFrame->setPlayLoopMode(false);
# スライドショー中に AudioFrame を非表示にします
$audioFrame->setHideAtShowing(true);
# 再生後にオーディオを先頭に巻き戻します
$audioFrame->setRewindAudio(true);
# PowerPoint ファイルをディスクに保存します
$pres->save("AudioFrameEmbed_changed.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
この PHP の例は、埋め込みオーディオを持つ新しいオーディオ フレームを追加し、トリムし、フェード時間を設定する方法を示します:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$audioData = file_get_contents("sampleaudio.mp3");
$audio = $pres->getAudios()->addAudio($audioData);
$audioFrame = $slide->getShapes()->addAudioFrameEmbedded(50, 50, 100, 100, $audio);
// トリミング開始オフセットを 1.5 秒に設定します
$audioFrame->setTrimFromStart(1500);
// トリミング終了オフセットを 2 秒に設定します
$audioFrame->setTrimFromEnd(2000);
// フェードイン時間を 200 ミリ秒に設定します
$audioFrame->setFadeInDuration(200);
// フェードアウト時間を 500 ミリ秒に設定します
$audioFrame->setFadeOutDuration(500);
$pres->save("AudioFrameTrimFade_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
次のコード サンプルは、埋め込みオーディオを持つオーディオ フレームを取得し、音量を 85% に設定する方法を示しています:
$pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
$slide = $pres->getSlides()->get_Item(0);
// オーディオ フレーム シェイプを取得します
$audioFrame = $slide->getShapes()->get_Item(0);
// オーディオの音量を 85% に設定します
$audioFrame->setVolumeValue(85);
$pres->save("AudioFrameValue_out.pptx", SaveFormat::Pptx);
}
finally {
$pres->dispose();
}
オーディオ キャプションを管理
Aspose.Slides を使用すると、getCaptionTracks メソッドを介してオーディオ フレームにクローズド キャプションを追加できます。このメソッドは CaptionsCollection を返し、WebVTT キャプション トラックの追加、既存トラックの反復、必要に応じた削除が可能です。
オーディオ キャプションを追加
getCaptionTracks メソッドを使用して、1 つまたは複数のキャプション トラックをオーディオ フレームに添付します。以下の例では、スライドにオーディオ ファイルを追加し、.vtt ファイルから新しいキャプション トラックを読み込みます。
$presentation = new Presentation();
try {
$audioData = file_get_contents("audio.mp3");
$audio = $presentation->getAudios()->addAudio($audioData);
$slide = $presentation->getSlides()->get_Item(0);
$audioFrame = $slide->getShapes()->addAudioFrameEmbedded(10, 10, 50, 50, $audio);
// WebVTT ファイルから新しいキャプション トラックを追加します。
$audioFrame->getCaptionTracks()->add("New track", "track.vtt");
$presentation->save("audio_with_captions.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
オーディオ キャプションを抽出
オーディオ フレームに関連付けられたキャプション トラックを反復し、.vtt ファイルとして保存できます。各キャプション トラックはバイナリ データと一意の識別子を公開しており、キャプションのエクスポート時に使用できます。
$presentation = new Presentation("audio_with_captions.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$shapeCount = java_values($slide->getShapes()->size());
for ($shapeIndex = 0; $shapeIndex < $shapeCount; $shapeIndex++) {
$shape = $slide->getShapes()->get_Item($shapeIndex);
if (java_instanceof($shape, new JavaClass("com.aspose.slides.AudioFrame"))) {
$audioFrame = $shape;
$trackCount = java_values($audioFrame->getCaptionTracks()->getCount());
for ($trackIndex = 0; $trackIndex < $trackCount; $trackIndex++) {
$captionTrack = $audioFrame->getCaptionTracks()->get_Item($trackIndex);
// 各キャプション トラックを .vtt ファイルとして保存します。
$filePath = $captionTrack->getCaptionId() . ".vtt";
file_put_contents($filePath, $captionTrack->getBinaryData());
}
}
}
} finally {
$presentation->dispose();
}
オーディオ キャプションを削除
オーディオ フレームからキャプションを削除するには、CaptionsCollection が提供するメソッド(clear、remove、removeAt など)を使用します。次の例は、オーディオ フレームからすべてのキャプション トラックを削除します。
$presentation = new Presentation($folderPath . "audio_with_captions.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$audioFrame = $slide->getShapes()->get_Item(0); // タイプ: AudioFrame
// オーディオ フレームからすべてのキャプション トラックを削除します。
$audioFrame->getCaptionTracks()->clear();
$presentation->save($folderPath . "audio_without_captions.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
オーディオを抽出
Aspose.Slides for PHP via Java を使用すると、スライド ショーの遷移で使用されるサウンドを抽出できます。たとえば、特定のスライドで使用されているサウンドを抽出できます。
- オーディオを含むプレゼンテーションを読み込むために、Presentation クラスのインスタンスを作成します。
- インデックスを使用して対象スライドの参照を取得します。
- スライドの slideshow transitions にアクセスします。
- バイト データとしてサウンドを抽出します。
このコードは、スライドで使用されているオーディオを抽出する方法を示しています:
# プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します
$pres = new Presentation("AudioSlide.pptx");
$Array = new java_class("java.lang.reflect.Array");
try {
# 目的のスライドにアクセスします
$slide = $pres->getSlides()->get_Item(0);
# スライドのスライドショー遷移効果を取得します
$transition = $slide->getSlideShowTransition();
# 音声をバイト配列として抽出します
$audio = $transition->getSound()->getBinaryData();
echo("Length: " . $Array->getLength($audio));
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
同じオーディオ アセットを複数のスライドで再利用し、ファイル サイズを増加させずに済みますか?
はい。プレゼンテーションの共有 audio collection にオーディオを一度追加し、その既存アセットを参照する追加のオーディオ フレームを作成します。これによりメディア データの重複が防止され、プレゼンテーション サイズが抑制されます。
既存のオーディオ フレームのサウンドを形状を再作成せずに置き換えることはできますか?
はい。リンクされたサウンドの場合は、link path を新しいファイルに更新します。埋め込みサウンドの場合は、プレゼンテーションの audio collection から別の埋め込みオーディオ オブジェクトに差し替えます。フレームの書式設定やほとんどの再生設定はそのまま保持されます。
トリミングはプレゼンテーションに保存されている基礎オーディオ データを変更しますか?
いいえ。トリミングは再生範囲のみを調整し、元のオーディオ バイトは変更されず、埋め込みオーディオまたはプレゼンテーションのオーディオ コレクションを通じて引き続きアクセス可能です。