Kelola Audio dalam Presentasi Menggunakan JavaScript
Overview
Artikel ini menjelaskan cara bekerja dengan audio frame di Aspose.Slides. Artikel ini menunjukkan cara menambahkan audio tersemat ke slide, menyesuaikan thumbnail audio frame, mengonfigurasi opsi pemutaran seperti volume, pengulangan, penyembunyian, pemotongan, dan durasi fade, serta mengekstrak audio yang digunakan dalam transisi tayangan slide.
Create Audio Frames
Aspose.Slides for Node.js via Java memungkinkan Anda menambahkan file audio ke slide. File audio tersebut disematkan dalam slide sebagai audio frame.
- Buat instance dari kelas Presentation.
- Dapatkan referensi slide melalui indeksnya.
- Muat aliran file audio yang ingin Anda sematkan ke dalam slide.
- Tambahkan audio frame yang disematkan (yang berisi file audio) ke slide.
- Atur PlayMode dan
Volumeyang disediakan oleh objek AudioFrame. - Simpan presentasi yang telah dimodifikasi.
Kode JavaScript berikut menunjukkan cara menambahkan audio frame yang disematkan ke slide:
// Membuat instance kelas Presentation yang mewakili file presentasi
const pres = new aspose.slides.Presentation();
try {
// Mengambil slide pertama
const sld = pres.getSlides().get_Item(0);
// Memuat file wav ke stream
const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav"));
// Menambahkan Audio Frame
const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Mengatur Mode Putar dan Volume Audio
audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto);
audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud);
// Menulis file PowerPoint ke disk
pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
Change Audio Frame Thumbnail
Saat Anda menambahkan file audio ke presentasi, audio muncul sebagai frame dengan gambar default standar (lihat gambar pada bagian di bawah). Anda dapat mengubah gambar pratinjau frame audio (atur gambar yang Anda inginkan).
Kode JavaScript berikut menunjukkan cara mengubah thumbnail atau gambar pratinjau audio frame:
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
// Menambahkan audio frame ke slide dengan posisi dan ukuran yang ditentukan.
const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3");
const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Menambahkan gambar ke sumber daya presentasi.
let picture;
const image = aspose.slides.Images.fromFile("eagle.jpeg");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) {
image.dispose();
}
}
// Mengatur gambar untuk audio frame.
audioFrame.getPictureFormat().getPicture().setImage(picture);// <-----
// Menyimpan presentasi yang dimodifikasi ke disk
presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Change Audio Play Options
Aspose.Slides for Node.js via Java memungkinkan Anda mengubah opsi yang mengendalikan pemutaran atau properti audio. Misalnya, Anda dapat menyesuaikan volume audio, mengatur audio untuk diputar berulang, atau bahkan menyembunyikan ikon audio.
Panel Audio Options di Microsoft PowerPoint:

Opsi Audio di PowerPoint yang sesuai dengan properti Aspose.Slides AudioFrame adalah:
- Start drop-down list cocok dengan metode AudioFrame.setPlayMode.
- Volume cocok dengan metode AudioFrame.setVolume.
- Play Across Slides cocok dengan metode AudioFrame.setPlayAcrossSlides.
- Loop until Stopped cocok dengan metode AudioFrame.setPlayLoopMode.
- Hide During Show cocok dengan metode AudioFrame.setHideAtShowing.
- Rewind after Playing cocok dengan metode AudioFrame.setRewindAudio.
Opsi Editing di PowerPoint yang sesuai dengan properti Aspose.Slides AudioFrame adalah:
- Fade In cocok dengan metode AudioFrame.setFadeInDuration.
- Fade Out cocok dengan metode AudioFrame.setFadeOutDuration.
- Trim Audio Start Time cocok dengan metode AudioFrame.setTrimFromStart.
- Trim Audio End Time nilai sama dengan durasi audio dikurangi nilai metode AudioFrame.setTrimFromEnd.
Kontrol Volume pada panel kontrol audio di PowerPoint sesuai dengan metode AudioFrame.setVolumeValue. Kontrol ini memungkinkan Anda mengubah volume audio dalam persentase.
Berikut cara mengubah opsi Pemutaran Audio:
- Buat atau dapatkan Audio Frame.
- Atur nilai baru untuk properti Audio Frame yang ingin Anda ubah.
- Simpan file PowerPoint yang telah dimodifikasi.
Kode JavaScript berikut mendemonstrasikan operasi di mana opsi audio disesuaikan:
const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
// Mengambil bentuk AudioFrame
const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Mengatur mode Putar menjadi diputar saat klik
audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick);
// Mengatur volume menjadi Rendah
audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low);
// Mengatur audio untuk diputar di seluruh slide
audioFrame.setPlayAcrossSlides(true);
// Menonaktifkan pengulangan untuk audio
audioFrame.setPlayLoopMode(false);
// Menyembunyikan AudioFrame selama pertunjukan slide
audioFrame.setHideAtShowing(true);
// Memundurkan audio ke awal setelah diputar
audioFrame.setRewindAudio(true);
// Menyimpan file PowerPoint ke disk
pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Contoh JavaScript ini menunjukkan cara menambahkan audio frame baru dengan audio tersemat, memotongnya, dan mengatur durasi fade:
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);
// Menetapkan offset pemotongan awal ke 1,5 detik
audioFrame.setTrimFromStart(1500);
// Menetapkan offset pemotongan akhir ke 2 detik
audioFrame.setTrimFromEnd(2000);
// Menetapkan durasi fade-in ke 200 ms
audioFrame.setFadeInDuration(200);
// Menetapkan durasi fade-out ke 500 ms
audioFrame.setFadeOutDuration(500);
pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
Contoh kode berikut menunjukkan cara mengambil audio frame dengan audio tersemat dan mengatur volumenya menjadi 85%:
const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
const slide = pres.getSlides().get_Item(0);
// Mengambil bentuk audio frame
const audioFrame = slide.getShapes().get_Item(0);
// Mengatur volume audio menjadi 85%
audioFrame.setVolumeValue(85.0);
pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Manage Audio Captions
Aspose.Slides memungkinkan Anda menambahkan teks tertutup (closed captions) ke audio frame melalui metode getCaptionTracks. Metode ini mengembalikan sebuah CaptionsCollection, yang memungkinkan Anda menambahkan trek caption WebVTT, mengiterasi trek yang ada, dan menghapusnya bila diperlukan.
Add Audio Captions
Gunakan metode getCaptionTracks untuk melampirkan satu atau lebih trek caption ke audio frame. Pada contoh berikut, file audio ditambahkan ke slide, lalu trek caption baru dimuat dari file .vtt.
let presentation = new aspose.slides.Presentation();
try {
let audioStream = java.newInstanceSync("java.io.FileInputStream", "audio.mp3");
let audio = presentation.getAudios().addAudio(audioStream);
audioStream.close();
let slide = presentation.getSlides().get_Item(0);
let audioFrame = slide.getShapes().addAudioFrameEmbedded(10, 10, 50, 50, audio);
// Tambah trek caption baru dari file WebVTT.
audioFrame.getCaptionTracks().add("New track", "track.vtt");
presentation.save("audio_with_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extract Audio Captions
Anda dapat mengiterasi trek caption yang terkait dengan audio frame dan menyimpannya sebagai file .vtt. Setiap trek caption menyediakan data biner dan pengidentifikasi unik, yang dapat digunakan saat mengekspor caption.
let presentation = new aspose.slides.Presentation("audio_with_captions.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
let shapeCount = slide.getShapes().size();
for (let shapeIndex = 0; shapeIndex < shapeCount; shapeIndex++) {
let shape = slide.getShapes().get_Item(shapeIndex);
if (java.instanceOf(shape, "com.aspose.slides.AudioFrame")) {
let audioFrame = shape;
let trackCount = audioFrame.getCaptionTracks().getCount();
for (let trackIndex = 0; trackIndex < trackCount; trackIndex++) {
let captionTrack = audioFrame.getCaptionTracks().get_Item(trackIndex);
// Simpan trek caption sebagai file .vtt.
let filePath = captionTrack.getCaptionId() + ".vtt";
let captionData = Buffer.from(captionTrack.getBinaryData());
fs.writeFileSync(filePath, captionData);
}
}
}
} finally {
presentation.dispose();
}
Remove Audio Captions
Untuk menghapus caption dari audio frame, gunakan metode yang disediakan oleh CaptionsCollection, seperti clear, remove, atau removeAt. Contoh berikut menghapus semua trek caption dari audio frame.
let presentation = new aspose.slides.Presentation("audio_with_captions.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
let audioFrame = slide.getShapes().get_Item(0); // tipe: aspose.slides.AudioFrame
// Hapus semua trek caption dari audio frame.
audioFrame.getCaptionTracks().clear();
presentation.save("audio_without_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extract Audio
Aspose.Slides for Node.js via Java memungkinkan Anda mengekstrak suara yang digunakan dalam transisi tayangan slide. Misalnya, Anda dapat mengekstrak suara yang digunakan pada slide tertentu.
- Buat instance dari kelas Presentation dan muat presentasi yang berisi audio.
- Dapatkan referensi slide yang relevan melalui indeksnya.
- Akses slideshow transitions untuk slide tersebut.
- Ekstrak suara dalam bentuk data byte.
Kode JavaScript berikut menunjukkan cara mengekstrak audio yang digunakan pada slide:
// Membuat instance kelas Presentation yang mewakili file presentasi
const pres = new aspose.slides.Presentation("AudioSlide.pptx");
try {
// Mengakses slide yang diinginkan
const slide = pres.getSlides().get_Item(0);
// Mengambil efek transisi tayangan slide untuk slide tersebut
const transition = slide.getSlideShowTransition();
// Mengestrak suara dalam array byte
const audio = transition.getSound().getBinaryData();
console.log("Length: " + audio.length);
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Apakah saya dapat menggunakan kembali aset audio yang sama di beberapa slide tanpa memperbesar ukuran file?
Ya. Tambahkan audio sekali ke presentasi’s shared audio collection dan buat audio frame tambahan yang merujuk ke aset yang sudah ada. Ini mencegah duplikasi data media dan menjaga ukuran presentasi tetap terkendali.
Apakah saya dapat mengganti suara dalam audio frame yang ada tanpa membuat ulang shape?
Ya. Untuk suara yang ditautkan, perbarui link path sehingga mengarah ke file baru. Untuk suara yang tersemat, ganti objek embedded audio dengan yang lain dari presentasi’s audio collection. Formatting frame dan sebagian besar pengaturan pemutaran tetap tidak berubah.
Apakah pemotongan mengubah data audio dasar yang disimpan dalam presentasi?
Tidak. Pemotongan hanya menyesuaikan batas pemutaran. Byte audio asli tetap tidak tersentuh dan dapat diakses melalui audio tersemat atau audio collection presentasi.