Správa zvuku v prezentacích na Androidu
Přehled
Tento článek vysvětluje, jak pracovat s audio rámci v Aspose.Slides. Ukazuje, jak přidat vložený zvuk do snímků, upravit miniaturu audio rámce, nastavit možnosti přehrávání, jako je hlasitost, smyčkování, skrytí, ořezávání a doby přechodů, a jak extrahovat zvuk použité při přechodech prezentace.
Vytvoření audio rámců
Aspose.Slides pro Android prostřednictvím Java vám umožňuje přidávat zvukové soubory do snímků. Zvukové soubory jsou do snímků vloženy jako audio rámce.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek pomocí jeho indexu.
- Načtěte stream zvukového souboru, který chcete do snímku vložit.
- Přidejte vložený audio rámec (obsahující zvukový soubor) do snímku.
- Nastavte PlayMode a
Volumeposkytované objektem IAudioFrame. - Uložte upravenou prezentaci.
Tento Java kód ukazuje, jak přidat vložený audio rámec do snímku:
// Vytvoří instanci třídy Presentation, která představuje soubor prezentace
Presentation pres = new Presentation();
try {
// Získá první snímek
ISlide sld = pres.getSlides().get_Item(0);
// Načte soubor zvuku wav do streamu
FileInputStream fstr = new FileInputStream(new File("audio.wav"));
// Přidá audio rámec
IAudioFrame audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Nastaví režim přehrávání a hlasitost zvuku
audioFrame.setPlayMode(AudioPlayModePreset.Auto);
audioFrame.setVolume(AudioVolumeMode.Loud);
// Zapíše soubor PowerPoint na disk
pres.save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Změna miniatury audio rámce
Když přidáte zvukový soubor do prezentace, zvuk se zobrazí jako rámec 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ámce (nastavit požadovaný obrázek).
Tento Java kód ukazuje, jak změnit miniaturu nebo náhledový obrázek audio rámce:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Přidá audio rámec na snímek s určenou polohou a velikostí.
FileInputStream audioStream = new FileInputStream("sample2.mp3");
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Přidá obrázek do prostředků prezentace.
IPPImage picture;
IImage image = 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", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Změna možností přehrávání zvuku
Aspose.Slides pro Android prostřednictvím Java vám umožňuje měnit možnosti, které řídí přehrávání nebo vlastnosti zvuku. Například můžete upravit hlasitost zvuku, nastavit přehrávání ve smyčce 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á vlastnosti AudioFrame.PlayMode
- Volume odpovídá vlastnosti AudioFrame.Volume
- Play Across Slides odpovídá vlastnosti AudioFrame.PlayAcrossSlides
- Loop until Stopped odpovídá vlastnosti AudioFrame.PlayLoopMode
- Hide During Show odpovídá vlastnosti AudioFrame.HideAtShowing
- Rewind after Playing odpovídá vlastnosti AudioFrame.RewindAudio
PowerPoint Editing možnosti, které odpovídají vlastnostem Aspose.Slides AudioFrame:
- Fade In odpovídá vlastnosti AudioFrame.FadeInDuration
- Fade Out odpovídá vlastnosti AudioFrame.FadeOutDuration
- Trim Audio Start Time odpovídá vlastnosti AudioFrame.TrimFromStart
- Trim Audio End Time hodnota se rovná délce zvuku minus hodnota AudioFrame.TrimFromEnd
PowerPoint Volume controll na panelu ovládání zvuku odpovídá vlastnosti AudioFrame.VolumeValue. Umožňuje změnit hlasitost zvuku v procentech.
Takto můžete změnit možnosti přehrávání zvuku:
- Vytvořit nebo získat audio rámec.
- Nastavte nové hodnoty vlastností audio rámce, které chcete upravit.
- Uložte upravený soubor PowerPoint.
Tento Java kód demonstruje operaci, při níž jsou upraveny možnosti zvuku:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
// Získá tvar AudioFrame
AudioFrame audioFrame = (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(AudioPlayModePreset.OnClick);
// Nastaví hlasitost na Nízká
audioFrame.setVolume(AudioVolumeMode.Low);
// Nastaví přehrávání zvuku napříč snímky
audioFrame.setPlayAcrossSlides(true);
// Zakáže smyčku pro zvuk
audioFrame.setPlayLoopMode(false);
// Skryje AudioFrame během prezentace
audioFrame.setHideAtShowing(true);
// Přetočí zvuk na začátek po přehrání
audioFrame.setRewindAudio(true);
// Uloží soubor PowerPoint na disk
pres.save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Tento Java příklad ukazuje, jak přidat nový audio rámec s vloženým zvukem, ořezat jej a nastavit doby přechodů:
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);
// Nastaví počáteční offset ořezu na 1,5 sekundy
audioFrame.setTrimFromStart(1500f);
// Nastaví koncový offset ořezu na 2 sekundy
audioFrame.setTrimFromEnd(2000f);
// Nastaví dobu fade-in na 200 ms
audioFrame.setFadeInDuration(200f);
// Nastaví dobu fade-out na 500 ms
audioFrame.setFadeOutDuration(500f);
pres.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Následující ukázka kódu ukazuje, jak načíst audio rámec s vloženým zvukem a nastavit jeho hlasitost na 85 %:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
// Získá tvar audio rámce
IAudioFrame audioFrame = (IAudioFrame)slide.getShapes().get_Item(0);
// Nastaví hlasitost zvuku na 85%
audioFrame.setVolumeValue(85f);
pres.save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Správa titulků zvuku
Aspose.Slides umožňuje přidávat uzavřené titulky k audio rámci prostřednictvím metody getCaptionTracks. Tato metoda vrací ICaptionsCollection, která umožňuje přidávat WebVTT titulkové stopy, procházet existující stopy a v případě potřeby je odstraňovat.
Přidání titulků zvuku
Použijte metodu getCaptionTracks k připojení jedné nebo více titulkových stop k audio rámci. V následujícím příkladu je zvukový soubor přidán do snímku a poté je z .vtt souboru načtena nová titulková stopa.
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);
// Přidá novou titulkovou stopu ze souboru WebVTT.
audioFrame.getCaptionTracks().add("New track", "track.vtt");
presentation.save("audio_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extrahování titulků zvuku
Můžete procházet titulkové stopy spojené s audio rámcem a ukládat je jako soubory .vtt. Každá titulková stopa zpřístupňuje svá binární data a jedinečný identifikátor, který lze použít při exportu titulků.
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()) {
// Uloží titulkovou stopu jako soubor .vtt.
FileOutputStream fos = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
fos.write(captionTrack.getBinaryData());
fos.close();
}
}
}
} catch (IOException e){
} finally {
presentation.dispose();
}
Odstranění titulků zvuku
Pro odebrání titulků z audio rámce použijte metody poskytované rozhraním ICaptionsCollection, například clear, remove, nebo removeAt. Následující příklad odstraňuje všechny titulkové stopy z audio rámce.
Presentation presentation = new Presentation("audio_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAudioFrame audioFrame = (IAudioFrame) slide.getShapes().get_Item(0);
// Odstraní všechny titulkové stopy z audio rámce.
audioFrame.getCaptionTracks().clear();
presentation.save("audio_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extrahování zvuku
Aspose.Slides pro Android prostřednictvím Java umožňuje extrahovat zvuk použitého při přechodech prezentace. Například můžete extrahovat zvuk použitý na 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 daný snímek.
- Extrahujte zvuk v podobě binárních dat.
Tento Java kód ukazuje, jak extrahovat zvuk použitý na snímku:
// Vytvoří instanci třídy Presentation, která představuje soubor prezentace
Presentation pres = new Presentation("AudioSlide.pptx");
try {
// Získá požadovaný snímek
ISlide slide = pres.getSlides().get_Item(0);
// Získá efekty přechodu prezentace pro snímek
ISlideShowTransition transition = slide.getSlideShowTransition();
// Extrahuje zvuk do pole bajtů
byte[] audio = transition.getSound().getBinaryData();
System.out.println("Length: " + audio.length);
} finally {
if (pres != null) pres.dispose();
}
Často kladené otázky
Mohu znovu použít stejný zvukový soubor 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ámce, které odkazují na tento existující zdroj. Tím se zabrání duplikaci mediálních dat a velikost prezentace zůstane pod kontrolou.
Mohu v existujícím audio rámci vyměnit zvuk bez nutnosti znovu vytvářet tvar?
Ano. U propojeného zvuku aktualizujte link path tak, aby ukazoval na nový soubor. U vloženého zvuku vyměňte objekt embedded audio za jiný ze audio collection prezentace. Formátování rámce a většina nastavení přehrávání zůstane zachována.
Mění ořezávání podkladová zvuková data uložená v prezentaci?
Ne. Ořezávání upravuje pouze hranice přehrávání. Původní zvukové bajty zůstávají nedotčeny a jsou přístupné přes vložený zvuk nebo kolekci zvuků prezentace.