Hantera ljud i presentationer på Android
Översikt
Den här artikeln förklarar hur man arbetar med ljudramar i Aspose.Slides. Den visar hur man lägger till inbäddat ljud i bilder, anpassar ljudramens miniatyr, konfigurerar uppspelningsalternativ som volym, loopning, dölja, trimning och toningslängder, och extraherar ljud som används i bildspelsövergångar.
Skapa ljudramar
Aspose.Slides för Android via Java låter dig lägga till ljudfiler i bilder. Ljudfilerna bäddas in i bilder som ljudramar.
- Skapa en instans av klassen Presentation.
- Hämta en bilds referens via dess index.
- Läs in ljudfilströmmen som du vill bädda in i bilden.
- Lägg till den inbäddade ljudramen (som innehåller ljudfilen) till bilden.
- Ställ in PlayMode och
Volumesom exponeras av objektet IAudioFrame. - Spara den modifierade presentationen.
Denna Java-kod visar hur du lägger till en inbäddad ljudram i en bild:
// Instansierar en Presentation-klass som representerar en presentationsfil
Presentation pres = new Presentation();
try {
// Hämtar den första bilden
ISlide sld = pres.getSlides().get_Item(0);
// Laddar wav-ljudfilen till en ström
FileInputStream fstr = new FileInputStream(new File("audio.wav"));
// Lägger till ljudramen
IAudioFrame audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Ställer in uppspelningsläge och volym för ljudet
audioFrame.setPlayMode(AudioPlayModePreset.Auto);
audioFrame.setVolume(AudioVolumeMode.Loud);
// Skriver PowerPoint-filen till disk
pres.save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Ändra ljudramens miniatyr
När du lägger till en ljudfil i en presentation visas ljudet som en ram med en standardstandardbild (se bilden i avsnittet nedan). Du kan ändra ljudramens förhandsbild (ange din föredragna bild).
Denna Java-kod visar hur du ändrar en ljudramens miniatyr eller förhandsbild:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Lägger till en ljudram på bilden med en specificerad position och storlek.
FileInputStream audioStream = new FileInputStream("sample2.mp3");
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Lägger till en bild i presentationens resurser.
IPPImage picture;
IImage image = Images.fromFile("eagle.jpeg");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
// Ställer in bilden för ljudramen.
audioFrame.getPictureFormat().getPicture().setImage(picture); // <-----
//Sparar den ändrade presentationen till disk
presentation.save("example_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Ändra ljuduppspelningsalternativ
Aspose.Slides för Android via Java låter dig ändra alternativ som styr ett ljüds uppspelning eller egenskaper. Till exempel kan du justera ett ljüds volym, sätta ljüdet på loop eller till och med dölja ljüdikonen.
The Audio Options pane in Microsoft PowerPoint:

PowerPoint Audio Options that correspond to Aspose.Slides AudioFrame properties:
- Start-rullgardinslistan motsvarar egenskapen AudioFrame.PlayMode
- Volym motsvarar egenskapen AudioFrame.Volume
- Spela över bilder motsvarar egenskapen AudioFrame.PlayAcrossSlides
- Loopa tills stoppad motsvarar egenskapen AudioFrame.PlayLoopMode
- Dölj under presentation motsvarar egenskapen AudioFrame.HideAtShowing
- Spola tillbaka efter uppspelning motsvarar egenskapen AudioFrame.RewindAudio
PowerPoint Editing options that correspond to Aspose.Slides AudioFrame properties:
- Tona in motsvarar egenskapen AudioFrame.FadeInDuration
- Tona ut motsvarar egenskapen AudioFrame.FadeOutDuration
- Trimma ljud starttid motsvarar egenskapen AudioFrame.TrimFromStart
- Trimma ljud sluttid värdet är lika med ljudets varaktighet minus värdet av egenskapen AudioFrame.TrimFromEnd
PowerPoint volymkontroll på ljudpanel motsvarar egenskapen AudioFrame.VolumeValue . Den låter dig ändra ljudvolymen i procent.
Så här ändrar du ljuduppspelningsalternativen:
- Skapa eller hämta Audio Frame.
- Ange nya värden för de Audio Frame‑egenskaper du vill justera.
- Spara den modifierade PowerPoint‑filen.
Denna Java-kod demonstrerar en operation där ljudalternativen justeras:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
// Hämtar AudioFrame-formen
AudioFrame audioFrame = (AudioFrame)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Ställer in uppspelningsläget till att spela vid klick
audioFrame.setPlayMode(AudioPlayModePreset.OnClick);
// Ställer in volymen till Låg
audioFrame.setVolume(AudioVolumeMode.Low);
// Ställer in ljudet att spela över bilder
audioFrame.setPlayAcrossSlides(true);
// Inaktiverar loopning för ljudet
audioFrame.setPlayLoopMode(false);
// Döljer AudioFrame under bildspelet
audioFrame.setHideAtShowing(true);
// Spolar tillbaka ljudet till början efter uppspelning
audioFrame.setRewindAudio(true);
// Sparar PowerPoint-filen till disk
pres.save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Detta Java‑exempel visar hur man lägger till en ny ljudram med inbäddat ljud, trimmar den och anger toningslängderna:
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);
// Ställer in trimningens startoffset till 1,5 sekunder
audioFrame.setTrimFromStart(1500f);
// Ställer in trimningens slutoffset till 2 sekunder
audioFrame.setTrimFromEnd(2000f);
// Ställer in toningens intagslängd till 200 ms
audioFrame.setFadeInDuration(200f);
// Ställer in toningens uttoningslängd till 500 ms
audioFrame.setFadeOutDuration(500f);
pres.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Följande kodexempel visar hur man hämtar en ljudram med inbäddat ljud och sätter dess volym till 85 %:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
// Hämtar en ljudramform
IAudioFrame audioFrame = (IAudioFrame)slide.getShapes().get_Item(0);
// Ställer in ljudvolymen till 85%
audioFrame.setVolumeValue(85f);
pres.save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Hantera ljudtextning
Aspose.Slides låter dig lägga till stängda bildtexter till en ljudram via metoden getCaptionTracks . Denna metod returnerar en ICaptionsCollection, som låter dig lägga till WebVTT‑textspår, iterera genom befintliga spår och ta bort dem vid behov.
Lägg till ljudtextning
Använd metoden getCaptionTracks för att bifoga ett eller flera textspår till en ljudram. I följande exempel läggs en ljudfil till en bild och därefter laddas ett nytt textspår från en .vtt‑fil.
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);
// Lägg till ett nytt textspår från en WebVTT-fil.
presentation.save("audio_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extrahera ljudtextning
Du kan iterera genom de textspår som är associerade med en ljudram och spara dem som .vtt‑filer. Varje textspår exponerar sin binära data och unika identifierare, vilket kan användas vid export av textning.
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()) {
// Spara textspåret som en .vtt-fil.
FileOutputStream fos = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
fos.write(captionTrack.getBinaryData());
fos.close();
}
}
}
} catch (IOException e){
} finally {
presentation.dispose();
}
Ta bort ljudtextning
För att ta bort textning från en ljudram, använd metoderna som tillhandahålls av ICaptionsCollection, såsom clear, remove, eller removeAt. Följande exempel tar bort alla textspår från en ljudram.
Presentation presentation = new Presentation("audio_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAudioFrame audioFrame = (IAudioFrame) slide.getShapes().get_Item(0);
// Ta bort alla textspår från ljudramen.
audioFrame.getCaptionTracks().clear();
presentation.save("audio_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Extrahera ljud
Aspose.Slides för Android via Java låter dig extrahera ljudet som används i bildspelsövergångar. Till exempel kan du extrahera ljudet som används i en specifik bild.
- Skapa en instans av klassen Presentation och läs in presentationen som innehåller ljudet.
- Hämta den relevanta bildens referens via dess index.
- Åtkomst till slideshow transitions för bilden.
- Extrahera ljudet i byte‑data.
Denna kod i Java visar hur du extraherar ljudet som används i en bild:
// Instansierar en Presentation-klass som representerar en presentationsfil
Presentation pres = new Presentation("AudioSlide.pptx");
try {
// Hämtar den önskade bilden
ISlide slide = pres.getSlides().get_Item(0);
// Hämtar bildspelsövergångseffekterna för bilden
ISlideShowTransition transition = slide.getSlideShowTransition();
//Extraherar ljudet i byte array
byte[] audio = transition.getSound().getBinaryData();
System.out.println("Length: " + audio.length);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Kan jag återanvända samma ljudresurs på flera bilder utan att öka filstorleken?
Ja. Lägg till ljudet en gång i presentationens delade audio collection och skapa ytterligare ljudramar som refererar till den befintliga resursen. Detta undviker duplicering av mediadata och håller presentationens storlek under kontroll.
Kan jag byta ut ljudet i en befintlig ljudram utan att återskapa formen?
Ja. För ett länkat ljud, uppdatera link path så att det pekar på den nya filen. För ett inbäddat ljud, byt ut det embedded audio‑objektet mot ett annat från presentationens audio collection. Ramens formatering och de flesta uppspelningsinställningar förblir intakta.
Ändrar trimning den underliggande ljuddata som lagras i presentationen?
Nej. Trimning justerar endast uppspelningsgränserna. De ursprungliga ljudbytarna förblir orörda och kan nås via det inbäddade ljudet eller presentationens ljudsamling.