JavaScript を使用したプレゼンテーションのオーディオ管理

オーディオ フレームの作成

Aspose.Slides for Node.js via Java を使用すると、スライドにオーディオ ファイルを追加できます。オーディオ ファイルはオーディオ フレームとしてスライドに埋め込まれます。

  1. Presentation クラスのインスタンスを作成します。
  2. インデックスを使用してスライドの参照を取得します。
  3. 埋め込むオーディオ ファイルのストリームをロードします。
  4. 埋め込みオーディオ フレーム(オーディオ ファイルを含む)をスライドに追加します。
  5. AudioFrame オブジェクトが公開する PlayModeVolume を設定します。
  6. 変更したプレゼンテーションを保存します。

この JavaScript コードは、スライドに埋め込みオーディオ フレームを追加する方法を示します:

// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成
const pres = new aspose.slides.Presentation();
try {
    // 最初のスライドを取得
    const sld = pres.getSlides().get_Item(0);
    // wav サウンド ファイルをストリームに読み込む
    const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav"));
    // オーディオ フレームを追加
    const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
    fstr.close();
    // オーディオの再生モードと音量を設定
    audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto);
    audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud);
    // PowerPoint ファイルを書き出す
    pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

オーディオ フレームのサムネイルを変更

プレゼンテーションにオーディオ ファイルを追加すると、標準の既定画像を持つフレームとして表示されます(以下の画像参照)。オーディオ フレームのプレビュー画像(任意の画像)に変更できます。

この JavaScript コードは、オーディオ フレームのサムネイルまたはプレビュー画像を変更する方法を示します:

const presentation = new aspose.slides.Presentation();
try {
    const slide = presentation.getSlides().get_Item(0);
    // 指定した位置とサイズでスライドにオーディオ フレームを追加します。
    const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3");
    const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
    audioStream.close();
    // プレゼンテーションのリソースに画像を追加します。
    let picture;
    const image = aspose.slides.Images.fromFile("eagle.jpeg");
    try {
        picture = presentation.getImages().addImage(image);
    } finally {
        if (image != null) {
            image.dispose();
        }
    }
    // オーディオ フレームの画像を設定します。
    audioFrame.getPictureFormat().getPicture().setImage(picture);// <-----
    // 変更されたプレゼンテーションをディスクに保存します。
    presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
    if (presentation != null) {
        presentation.dispose();
    }
}

オーディオ 再生オプションの変更

Aspose.Slides for Node.js via Java を使用すると、オーディオの再生やプロパティを制御するオプションを変更できます。たとえば、音量を調整したり、ループ再生に設定したり、アイコンを非表示にしたりできます。

Microsoft PowerPoint の Audio Options ペイン:

example1_image

PowerPoint の Audio Options が Aspose.Slides の AudioFrame プロパティに対応します:

PowerPoint の Editing オプションが Aspose.Slides の AudioFrame プロパティに対応します:

音量コントロール パネルの PowerPoint Volume controllAudioFrame.setVolumeValue メソッドに対応し、パーセンテージで音量を変更できます。

オーディオ 再生オプションを変更する手順:

  1. Create もしくは Audio Frame を取得します。
  2. 調整したい Audio Frame プロパティに新しい値を設定します。
  3. 変更した PowerPoint ファイルを保存します。

この JavaScript コードは、オーディオのオプションを調整する操作を示します:

const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
    // AudioFrame シェイプを取得
    const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0);
    // 再生モードをクリック時再生に設定
    audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick);
    // 音量を低に設定
    audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low);
    // オーディオをスライド全体で再生するように設定
    audioFrame.setPlayAcrossSlides(true);
    // オーディオのループを無効化
    audioFrame.setPlayLoopMode(false);
    // スライドショー中に AudioFrame を非表示に設定
    audioFrame.setHideAtShowing(true);
    // 再生後にオーディオを先頭に巻き戻す
    audioFrame.setRewindAudio(true);
    // PowerPoint ファイルをディスクに保存
    pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

この JavaScript サンプルは、埋め込みオーディオを持つ新しいオーディオ フレームを追加し、トリミングし、フェード時間を設定する方法を示します:

const pres = new aspose.slides.Presentation();
try {
    const slide = pres.getSlides().get_Item(0);
    
    const audioData = java.newArray("byte", Array.from(fs.readFileSync("sampleaudio.mp3")));
    const audio = pres.getAudios().addAudio(audioData);
    const 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", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}

次のコード例は、埋め込みオーディオを持つオーディオ フレームを取得し、音量を 85% に設定する方法を示します:

const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
    const slide = pres.getSlides().get_Item(0);

    // オーディオ フレーム シェイプを取得
    const audioFrame = slide.getShapes().get_Item(0);

    // オーディオの音量を 85% に設定
    audioFrame.setVolumeValue(85.0);

    pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
    pres.dispose();
}

オーディオ の抽出

Aspose.Slides for Node.js via Java を使用すると、スライドショーの遷移で使用されるサウンドを抽出できます。たとえば、特定のスライドで使用されるサウンドを抽出できます。

  1. Presentation クラスのインスタンスを作成し、オーディオを含むプレゼンテーションをロードします。
  2. インデックスを使用して対象スライドの参照を取得します。
  3. スライドの slideshow transitions にアクセスします。
  4. サウンドをバイト データとして抽出します。

この JavaScript コードは、スライドで使用されるオーディオを抽出する方法を示します:

// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成
const pres = new aspose.slides.Presentation("AudioSlide.pptx");
try {
    // 対象のスライドにアクセス
    const slide = pres.getSlides().get_Item(0);
    // スライドのスライドショー遷移効果を取得
    const transition = slide.getSlideShowTransition();
    // サウンドをバイト配列で抽出
    const audio = transition.getSound().getBinaryData();
    console.log("Length: " + audio.length);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

FAQ

同じオーディオ アセットを複数のスライドで再利用して、ファイル サイズを増加させない方法はありますか?

はい。プレゼンテーションの共有 audio collection にオーディオを一度だけ追加し、その既存アセットを参照する追加のオーディオ フレームを作成します。これによりメディア データの重複が回避され、プレゼンテーション サイズが制御下に保たれます。

既存のオーディオ フレームのサウンドを形状を作り直さずに置き換えることはできますか?

はい。リンクされたサウンドの場合は、link path を新しいファイルに更新します。埋め込みサウンドの場合は、embedded audio オブジェクトをプレゼンテーションの audio collection から別のものに入れ替えます。フレームの書式設定とほとんどの再生設定はそのまま残ります。

トリミングはプレゼンテーションに保存されている基礎オーディオ データを変更しますか?

いいえ。トリミングは再生境界のみを調整します。元のオーディオ バイトは変更されず、埋め込みオーディオまたはプレゼンテーションのオーディオ コレクションを介してアクセス可能なままです。