Android のプレゼンテーションでオーディオを管理する
オーディオ フレームの作成
Aspose.Slides for Android via Java を使用すると、スライドにオーディオ ファイルを追加できます。オーディオ ファイルはオーディオ フレームとしてスライドに埋め込まれます。
- Presentation クラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- スライドに埋め込むオーディオ ファイルのストリームをロードします。
- 埋め込まれたオーディオ フレーム(オーディオ ファイルを含む)をスライドに追加します。
- IAudioFrame オブジェクトが提供する PlayMode と
Volumeを設定します。 - 変更されたプレゼンテーションを保存します。
この Java コードは、スライドに埋め込まれたオーディオ フレームを追加する方法を示しています:
// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します
Presentation pres = new Presentation();
try {
// 最初のスライドを取得します
ISlide sld = pres.getSlides().get_Item(0);
// wav サウンド ファイルをストリームにロードします
FileInputStream fstr = new FileInputStream(new File("audio.wav"));
// オーディオ フレームを追加します
IAudioFrame 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(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
オーディオ フレームのサムネイルの変更
プレゼンテーションにオーディオ ファイルを追加すると、標準のデフォルト画像を持つフレームとして表示されます(以下の画像参照)。オーディオ フレームのプレビュー画像を好きな画像に変更できます。
この Java コードは、オーディオ フレームのサムネイルまたはプレビュー画像を変更する方法を示しています:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// 指定した位置とサイズでスライドにオーディオ フレームを追加します。
FileInputStream audioStream = new FileInputStream("sample2.mp3");
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// プレゼンテーションのリソースに画像を追加します。
IPPImage picture;
IImage image = 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", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
オーディオ再生オプションの変更
Aspose.Slides for Android via Java を使用すると、オーディオの再生やプロパティを制御するオプションを変更できます。たとえば、音量を調整したり、ループ再生にしたり、オーディオ アイコンを非表示にしたりできます。
Microsoft PowerPoint の Audio Options ペイン:

PowerPoint の Audio Options が Aspose.Slides の AudioFrame プロパティに対応しています:
- 開始 ドロップダウン リストは AudioFrame.PlayMode プロパティと一致します
- 音量 は AudioFrame.Volume プロパティと一致します
- スライドをまたいで再生 は AudioFrame.PlayAcrossSlides プロパティと一致します
- 停止までループ は AudioFrame.PlayLoopMode プロパティと一致します
- ショー中に非表示 は AudioFrame.HideAtShowing プロパティと一致します
- 再生後に巻き戻し は AudioFrame.RewindAudio プロパティと一致します
PowerPoint の Editing オプションが Aspose.Slides の AudioFrame プロパティに対応しています:
- フェード イン は AudioFrame.FadeInDuration プロパティと一致します
- フェード アウト は AudioFrame.FadeOutDuration プロパティと一致します
- オーディオ 開始時のトリミング は AudioFrame.TrimFromStart プロパティと一致します
- オーディオ 終了時のトリミング の値はオーディオの長さから AudioFrame.TrimFromEnd プロパティの値を引いたものと等しくなります
オーディオ コントロール パネルの音量コントロールは AudioFrame.VolumeValue プロパティに対応しており、音量をパーセンテージで変更できます。
オーディオ再生オプションを変更する手順は次のとおりです:
- Create または取得したオーディオ フレームを使用します。
- 調整したいオーディオ フレーム プロパティに新しい値を設定します。
- 変更された PowerPoint ファイルを保存します。
この Java コードは、オーディオのオプションを調整する操作を示しています:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
// AudioFrame シェイプを取得します
AudioFrame 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 (pres != null) pres.dispose();
}
この Java の例は、埋め込みオーディオ付きの新しいオーディオ フレームを追加し、トリミングとフェード時間を設定する方法を示しています:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
FileInputStream audioData = new FileInputStream("sampleaudio.mp3");
IAudio audio = pres.getAudios().addAudio(audioData, LoadingStreamBehavior.KeepLocked);
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio);
// トリミング開始オフセットを 1.5 秒に設定します
// トリミング終了オフセットを 2 秒に設定します
// フェードインの期間を 200 ms に設定します
// フェードアウトの期間を 500 ms に設定します
pres.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
次のコード サンプルは、埋め込みオーディオを持つオーディオ フレームを取得し、音量を 85% に設定する方法を示しています:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
// オーディオ フレーム シェイプを取得します
IAudioFrame audioFrame = (IAudioFrame)slide.getShapes().get_Item(0);
// オーディオ の音量を 85% に設定します
audioFrame.setVolumeValue(85f);
pres.save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
finally {
pres.dispose();
}
オーディオ キャプションの管理
Aspose.Slides は、getCaptionTracks メソッドを使用してオーディオ フレームにクローズド キャプションを追加できます。このメソッドは ICaptionsCollection を返し、WebVTT キャプション トラックの追加、既存トラックの反復、必要に応じた削除が可能です。
オーディオ キャプションの追加
getCaptionTracks メソッドを使用して、1 つまたは複数のキャプション トラックをオーディオ フレームに添付します。以下の例では、スライドにオーディオ ファイルを追加し、.vtt ファイルから新しいキャプション トラックをロードしています。
Presentation presentation = new Presentation();
try {
byte[] audioData = Files.readAllBytes(Paths.get("audio.mp3"));
IAudio audio = presentation.getAudios().addAudio(audioData);
ISlide slide = presentation.getSlides().get_Item(0);
IAudioFrame 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 presentation = new Presentation("audio_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAudioFrame) {
IAudioFrame audioFrame = (IAudioFrame) shape;
for (ICaptions captionTrack : audioFrame.getCaptionTracks()) {
// キャプション トラックを .vtt ファイルとして保存します。
FileOutputStream fos = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
fos.write(captionTrack.getBinaryData());
fos.close();
}
}
}
} catch (IOException e){
} finally {
presentation.dispose();
}
オーディオ キャプションの削除
キャプションをオーディオ フレームから削除するには、ICaptionsCollection が提供する clear、remove、removeAt などのメソッドを使用します。次の例は、オーディオ フレームからすべてのキャプション トラックを削除する方法を示しています。
Presentation presentation = new Presentation("audio_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAudioFrame audioFrame = (IAudioFrame) slide.getShapes().get_Item(0);
// オーディオ フレームからすべてのキャプション トラックを削除します。
audioFrame.getCaptionTracks().clear();
presentation.save("audio_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
オーディオの抽出
Aspose.Slides for Android via Java を使用すると、スライドショーの切り替え時に使用されるサウンドを抽出できます。たとえば、特定のスライドで使用されるサウンドを抽出できます。
- オーディオを含むプレゼンテーションをロードし、Presentation クラスのインスタンスを作成します。
- インデックスを使用して対象スライドの参照を取得します。
- スライドの slideshow transitions にアクセスします。
- サウンドをバイト データとして抽出します。
この Java のコードは、スライドで使用されているオーディオを抽出する方法を示しています:
// プレゼンテーション ファイルを表す Presentation クラスのインスタンスを作成します
Presentation pres = new Presentation("AudioSlide.pptx");
try {
// 目的のスライドにアクセスします
ISlide slide = pres.getSlides().get_Item(0);
// スライドのスライドショー遷移効果を取得します
ISlideShowTransition transition = slide.getSlideShowTransition();
//バイト配列としてサウンドを抽出します
byte[] audio = transition.getSound().getBinaryData();
System.out.println("Length: " + audio.length);
} finally {
if (pres != null) pres.dispose();
}
FAQ
同じオーディオ アセットを複数のスライドで再利用して、ファイル サイズが膨らむのを防げますか?
はい。プレゼンテーションの共有 audio collection にオーディオを一度追加し、既存のアセットを参照する追加のオーディオ フレームを作成します。これによりメディア データの重複を防ぎ、プレゼンテーションのサイズを抑制できます。
既存のオーディオ フレームのサウンドを、シェイプを作り直さずに置き換えることはできますか?
はい。リンクされたサウンドの場合は link path を新しいファイルに更新します。埋め込みサウンドの場合は、embedded audio オブジェクトをプレゼンテーションの audio collection から別のものに差し替えます。フレームの書式設定やほとんどの再生設定はそのまま保持されます。
トリミングはプレゼンテーションに保存されている元のオーディオ データを変更しますか?
いいえ。トリミングは再生範囲だけを調整し、元のオーディオ バイト列は変更されず、埋め込みオーディオまたはプレゼンテーションのオーディオ コレクションから引き続きアクセス可能です。