Správa zvuku v prezentacích pomocí JavaScriptu
Přehled
Tento článek vysvětluje, jak pracovat s audio rámečky v Aspose.Slides. Ukazuje, jak přidat vložený zvuk do snímků, přizpůsobit miniaturu audio rámečku, nakonfigurovat možnosti přehrávání, jako je hlasitost, opakování, skrytí, ořezávání a trvání přechodů, a extrahovat zvuk použitý v přechodech prezentace.
Vytvoření audio rámečků
Aspose.Slides for Node.js via Java vám umožňuje přidávat zvukové soubory do snímků. Zvukové soubory jsou vloženy do snímků jako audio rámečky.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek pomocí jeho indexu.
- Načtěte stream zvukového souboru, který chcete vložit do snímku.
- Přidejte vložený audio rámeček (obsahující zvukový soubor) na snímek.
- Nastavte PlayMode a
Volumevystavené objektem AudioFrame. - Uložte upravenou prezentaci.
Tento JavaScriptový kód ukazuje, jak přidat vložený audio rámeček na snímek:
// Vytvoří instanci třídy Presentation, která představuje soubor prezentace
const pres = new aspose.slides.Presentation();
try {
// Získá první snímek
const sld = pres.getSlides().get_Item(0);
// Načte wav zvukový soubor do proudu
const fstr = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "audio.wav"));
// Přidá audio rámeček
const audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Nastaví režim přehrávání a hlasitost zvuku
audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.Auto);
audioFrame.setVolume(aspose.slides.AudioVolumeMode.Loud);
// Zapíše soubor PowerPoint na disk
pres.save("AudioFrameEmbed_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
Změna miniatury audio rámečku
Když do prezentace přidáte zvukový soubor, zvuk se zobrazí jako rámeček se standardním výchozím obrázkem (viz obrázek v následující sekci). Můžete změnit náhledový obrázek audio rámečku (nastavte svůj preferovaný obrázek).
Tento JavaScriptový kód ukazuje, jak změnit miniaturu nebo náhledový obrázek audio rámečku:
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
// Přidá audio rámec na snímek s určenou pozicí a velikostí.
const audioStream = java.newInstanceSync("java.io.FileInputStream", "sample2.mp3");
const audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Přidá obrázek do zdrojů prezentace.
let picture;
const image = aspose.slides.Images.fromFile("eagle.jpeg");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) {
image.dispose();
}
}
// Nastaví obrázek pro audio rámec.
audioFrame.getPictureFormat().getPicture().setImage(picture);// <-----
// Uloží upravenou prezentaci na disk
presentation.save("example_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Změna možností přehrávání zvuku
Aspose.Slides for Node.js via Java vám umožňuje měnit možnosti, které řídí přehrávání zvuku nebo jeho vlastnosti. Například můžete upravit hlasitost zvuku, nastavit opakování přehrávání nebo dokonce skrýt ikonu zvuku.
Panel Audio Options v Microsoft PowerPoint:

PowerPoint Audio Options, které odpovídají vlastnostem Aspose.Slides AudioFrame:
- Start rozbalovací seznam odpovídá metodě AudioFrame.setPlayMode
- Volume odpovídá metodě AudioFrame.setVolume
- Play Across Slides odpovídá metodě AudioFrame.setPlayAcrossSlides
- Loop until Stopped odpovídá metodě AudioFrame.setPlayLoopMode
- Hide During Show odpovídá metodě AudioFrame.setHideAtShowing
- Rewind after Playing odpovídá metodě AudioFrame.setRewindAudio
PowerPoint Editing možnosti, které odpovídají vlastnostem Aspose.Slides AudioFrame:
- Fade In odpovídá metodě AudioFrame.setFadeInDuration
- Fade Out odpovídá metodě AudioFrame.setFadeOutDuration
- Trim Audio Start Time odpovídá metodě AudioFrame.setTrimFromStart
- Trim Audio End Time hodnota se rovná délce zvuku minus hodnota metody AudioFrame.setTrimFromEnd
Ovládací prvek Volume controll na panelu ovládání zvuku odpovídá metodě AudioFrame.setVolumeValue. Umožňuje změnit hlasitost zvuku v procentech.
Takto měníte možnosti přehrávání zvuku:
- Сreate nebo získejte Audio Frame.
- Nastavte nové hodnoty pro vlastnosti Audio Frame, které chcete upravit.
- Uložte upravený soubor PowerPoint.
Tento JavaScriptový kód demonstruje operaci, při které jsou upraveny možnosti zvuku:
const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
// Získá tvar AudioFrame
const audioFrame = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Nastaví režim přehrávání na přehrání po kliknutí
audioFrame.setPlayMode(aspose.slides.AudioPlayModePreset.OnClick);
// Nastaví hlasitost na Nízká
audioFrame.setVolume(aspose.slides.AudioVolumeMode.Low);
// Nastaví audio tak, aby se přehrávalo napříč snímky
audioFrame.setPlayAcrossSlides(true);
// Zakáže opakování pro audio
audioFrame.setPlayLoopMode(false);
// Skryje AudioFrame během prezentace
audioFrame.setHideAtShowing(true);
// Přetočí audio na začátek po přehrání
audioFrame.setRewindAudio(true);
// Uloží soubor PowerPoint na disk
pres.save("AudioFrameEmbed_changed.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tento JavaScriptový příklad ukazuje, jak přidat nový audio rámeček s vloženým zvukem, oříznout jej a nastavit trvání přechodů:
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);
// Nastaví počáteční offset ořezu na 1,5 sekundy
audioFrame.setTrimFromStart(1500);
// Nastaví koncový offset ořezu na 2 sekundy
audioFrame.setTrimFromEnd(2000);
// Nastaví dobu fade-in na 200 ms
audioFrame.setFadeInDuration(200);
// Nastaví dobu fade-out na 500 ms
audioFrame.setFadeOutDuration(500);
pres.save("AudioFrameTrimFade_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
Následující ukázka kódu ukazuje, jak získat audio rámeček s vloženým zvukem a nastavit jeho hlasitost na 85 %:
const pres = new aspose.slides.Presentation("AudioFrameEmbed_out.pptx");
try {
const slide = pres.getSlides().get_Item(0);
// Získá tvar audio rámce
const audioFrame = slide.getShapes().get_Item(0);
// Nastaví hlasitost zvuku na 85%
audioFrame.setVolumeValue(85.0);
pres.save("AudioFrameValue_out.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Správa titulků zvuku
Aspose.Slides vám umožňuje přidávat uzavřené titulky k audio rámečku pomocí metody getCaptionTracks. Tato metoda vrací CaptionsCollection, která vám umožní přidávat WebVTT titulky, iterovat přes existující stopy a odstraňovat je podle potřeby.
Přidání titulků zvuku
Použijte metodu getCaptionTracks k připojení jedné nebo více titulkových stop k audio rámečku. V následujícím příkladu je zvukový soubor přidán na snímek a následně je načtena nová titulková stopa ze souboru .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);
// Přidá novou titulkovou stopu ze souboru WebVTT.
audioFrame.getCaptionTracks().add("New track", "track.vtt");
presentation.save("audio_with_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extrahování titulků zvuku
Můžete iterovat přes titulkové stopy spojené s audio rámečkem a uložit je jako soubory .vtt. Každá titulková stopa poskytuje svá binární data a jedinečný identifikátor, který lze použít při exportu titulků.
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);
// Uloží titulkovou stopu jako soubor .vtt.
let filePath = captionTrack.getCaptionId() + ".vtt";
let captionData = Buffer.from(captionTrack.getBinaryData());
fs.writeFileSync(filePath, captionData);
}
}
}
} finally {
presentation.dispose();
}
Odstranění titulků zvuku
Chcete-li odstranit titulky z audio rámečku, použijte metody poskytované CaptionsCollection, jako jsou clear, remove nebo removeAt. Následující příklad odstraňuje všechny titulkové stopy z audio rámečku.
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); // typ: aspose.slides.AudioFrame
// Odstraní všechny titulkové stopy z audio rámce.
audioFrame.getCaptionTracks().clear();
presentation.save("audio_without_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extrahování zvuku
Aspose.Slides for Node.js via Java vám umožňuje extrahovat zvuk používaný v přechodech prezentace. Například můžete extrahovat zvuk použitého v konkrétním snímku.
- Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující zvuk.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přistupte k slideshow transitions pro snímek.
- Extrahujte zvuk v bajtových datech.
Tento JavaScriptový kód ukazuje, jak extrahovat zvuk použitý v snímku:
// Vytvoří instanci třídy Presentation, která představuje soubor prezentace
const pres = new aspose.slides.Presentation("AudioSlide.pptx");
try {
// Přistoupí k požadovanému snímku
const slide = pres.getSlides().get_Item(0);
// Získá efekty přechodu prezentace pro snímek
const transition = slide.getSlideShowTransition();
// Extrahuje zvuk do pole bajtů
const audio = transition.getSound().getBinaryData();
console.log("Length: " + audio.length);
} finally {
if (pres != null) {
pres.dispose();
}
}
Často kladené otázky
Mohu opakovaně použít stejný zvukový prostředek na více snímcích, aniž by se zvětšila velikost souboru?
Ano. Přidejte zvuk jednou do sdílené audio collection prezentace a vytvořte další audio rámečky, které odkazují na tento existující prostředek. Tím se zabrání duplikaci mediálních dat a velikost prezentace zůstane pod kontrolou.
Mohu nahradit zvuk v existujícím audio rámečku, aniž bych znovu vytvářel tvar?
Ano. Pro propojený zvuk aktualizujte link path tak, aby ukazoval na nový soubor. Pro vložený zvuk vyměňte objekt embedded audio za jiný z audio collection prezentace. Formátování rámečku a většina nastavení přehrávání zůstane nedotčena.
Mění ořezávání podkladová data zvuku uložená v prezentaci?
Ne. Ořezávání upravuje pouze hranice přehrávání. Původní bajty zvuku zůstávají nedotčeny a jsou přístupné prostřednictvím vloženého zvuku nebo audio kolekce prezentace.