Hantera ljud i presentationer med Python
Översikt
Den här artikeln förklarar hur du arbetar med ljudramar i Aspose.Slides. Den visar hur du lägger till inbäddat ljud på bilder, anpassar miniatyren för ljudramen, konfigurerar uppspelningsalternativ som volym, loopning, dold, beskärning och fade‑tider samt hur du extraherar ljud som används i bildspelsövergångar.
Skapa ljudramar
Aspose.Slides för Python via .NET låter dig lägga till ljudfiler på bilder. Ljudfilerna bäddas in i bilderna som ljudramar.
- Skapa en instans av Presentation-klassen.
- Hämta en bilds referens via dess index.
- Ladda ljudfilens ström som du vill bädda in i bilden.
- Lägg till den inbäddade ljudramen (som innehåller ljudfilen) på bilden.
- Ställ in PlayMode och
Volumesom exponeras av IAudioFrame-objektet. - Spara den ändrade presentationen.
Denna Python‑kod visar hur du lägger till en inbäddad ljudram på en bild:
import aspose.slides as slides
# Instansierar en presentationsklass som representerar en presentationsfil
with slides.Presentation() as pres:
# Hämtar den första bilden
sld = pres.slides[0]
# Laddar wav-ljudfilen till stream
with open(path + "sampleaudio.wav", "rb") as in_file:
# Lägger till ljudramen
audio_frame = sld.shapes.add_audio_frame_embedded(50, 150, 100, 100, in_file)
# Ställer in uppspelningsläget och volymen för ljudet
audio_frame.play_mode = slides.AudioPlayModePreset.AUTO
audio_frame.volume = slides.AudioVolumeMode.LOUD
# Skriver PowerPoint-filen till disken
pres.save("AudioFrameEmbed_out.pptx", slides.export.SaveFormat.PPTX)
Ändra miniatyr för ljudram
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 miniatyr (ange din föredragna bild).
Denna Python‑kod visar hur du ändrar en ljudramens miniatyr eller förhandsgranskningsbild:
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Lägger till en ljudram på bilden med en specificerad position och storlek.
with open("sample2.mp3", "rb") as audio_fs:
audioFrame = slide.shapes.add_audio_frame_embedded(150, 100, 50, 50, audio_fs)
# Lägger till en bild i presentationsresurserna.
with open("eagle.jpeg", "rb") as image_fs:
data = image_fs.read()
audioImage = presentation.images.add_image(data)
# Ställer in bilden för ljudramen.
audioFrame.picture_format.picture.image = audioImage
#Sparar den modifierade presentationen till disk
presentation.save("example_out.pptx", slides.export.SaveFormat.PPTX)
Ändra alternativ för ljuduppspelning
Aspose.Slides för Python via .NET låter dig ändra alternativ som styr ett ljuds uppspelning eller egenskaper. Till exempel kan du justera ett ljuds volym, sätta ljudet på loop eller till och med dölja ljudikonen.
Audio Options‑panelen i Microsoft PowerPoint:

PowerPoint Audio Options som motsvarar Aspose.Slides AudioFrame-egenskaper:
- Start‑rullgardinslistan motsvarar egenskapen AudioFrame.play_mode.
- Volume motsvarar egenskapen AudioFrame.volume.
- Play Across Slides motsvarar egenskapen AudioFrame.play_across_slides.
- Loop until Stopped motsvarar egenskapen AudioFrame.play_loop_mode.
- Hide During Show motsvarar egenskapen AudioFrame.hide_at_showing.
- Rewind after Playing motsvarar egenskapen AudioFrame.rewind_audio.
PowerPoint Editing‑alternativ som motsvarar Aspose.Slides AudioFrame-egenskaper:
- Fade In motsvarar egenskapen AudioFrame.fade_in_duration.
- Fade Out motsvarar egenskapen AudioFrame.fade_out_duration.
- Trim Audio Start Time motsvarar egenskapen AudioFrame.trim_from_start.
- Trim Audio End Time har värdet lika med ljudets totala varaktighet minus värdet i AudioFrame.trim_from_end.
PowerPoint Volume controll på ljudkontrollpanelen motsvarar egenskapen AudioFrame.volume_value. Den låter dig ändra ljudvolymen i procent.
Så här ändrar du alternativ för ljuduppspelning:
- Сreate eller hämta ljudramen.
- Ställ in nya värden för de ljudramsegenskaper du vill justera.
- Spara den ändrade PowerPoint‑filen.
Denna Python‑kod demonstrerar en operation där ett ljuds alternativ justeras:
import aspose.slides as slides
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# Hämtar AudioFrame-formen
audioFrame = pres.slides[0].shapes[0]
# Ställer in uppspelningsläget till att spela vid klick
audioFrame.play_mode = slides.AudioPlayModePreset.ON_CLICK
# Ställer in volymen till låg
audioFrame.volume = slides.AudioVolumeMode.LOW
# Ställer in ljudet att spelas över bilder
audioFrame.play_across_slides = True
# Inaktiverar loop för ljudet
audioFrame.play_loop_mode = False
# Döljer AudioFrame under bildspelet
audioFrame.hide_at_showing = True
# Spolar tillbaka ljudet till början efter uppspelning
audioFrame.rewind_audio = True
# Sparar PowerPoint-filen till disk
pres.save("AudioFrameEmbed_changed.pptx", slides.export.SaveFormat.PPTX)
Denna Python‑exempel visar hur du lägger till en ny ljudram med inbäddat ljud, beskär den och ställer in fade‑tiderna:
with slides.Presentation() as pres:
slide = pres.slides[0]
with open("sampleaudio.mp3", "rb") as audio_stream:
audio_data = audio_stream.read()
audio = pres.audios.add_audio(audio_data)
audio_frame = slide.shapes.add_audio_frame_embedded(50, 50, 100, 100, audio)
# Ställer in trimningsstartoffset till 1,5 sekunder
# Ställer in trimningsslutoffset till 2 sekunder
# Ställer in fade-in-tiden till 200 ms
# Ställer in fade-out-tiden till 500 ms
pres.save("AudioFrameTrimFade_out.pptx", slides.export.SaveFormat.PPTX)
Följande kodexempel visar hur du hämtar en ljudram med inbäddat ljud och sätter volymen till 85 %:
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# Hämtar en ljudramform
audio_frame = pres.slides[0].shapes[0]
# Ställer in ljudvolymen till 85%
audio_frame.volume_value = 85.0
pres.save("AudioFrameValue_out.pptx", slides.export.SaveFormat.PPTX)
Hantera ljudtexter
Aspose.Slides låter dig lägga till stängda undertexter till en ljudram via egenskapen caption_tracks. Denna egenskap returnerar en CaptionsCollection, som låter dig lägga till WebVTT‑undertextspår, iterera genom befintliga spår och ta bort dem vid behov.
Lägg till ljudtexter
Använd egenskapen caption_tracks för att bifoga ett eller flera undertextspår till en ljudram. I följande exempel läggs en ljudfil till en bild och sedan laddas ett nytt undertextspår från en .vtt‑fil.
with slides.Presentation() as presentation:
with open("audio.mp3", "rb") as audio_stream:
audio = presentation.audios.add_audio(audio_stream.read())
slide = presentation.slides[0]
audio_frame = slide.shapes.add_audio_frame_embedded(10, 10, 50, 50, audio)
# Lägg till ett nytt undertextspår från en WebVTT-fil.
presentation.save("audio_with_captions.pptx", slides.export.SaveFormat.PPTX)
Extrahera ljudtexter
Du kan iterera genom de undertextspår som är kopplade till en ljudram och spara dem som .vtt‑filer. Varje undertextspår exponerar sina binära data och unika identifierare, som kan användas vid export av undertexter.
with slides.Presentation("audio_with_captions.pptx") as presentation:
slide = presentation.slides[0]
for shape in slide.shapes:
if isinstance(shape, slides.AudioFrame):
audio_frame = shape
for caption_track in audio_frame.caption_tracks:
# Spara undertextspåret som en .vtt-fil.
with open(f"{caption_track.caption_id}.vtt", "wb") as track_stream:
track_stream.write(caption_track.binary_data)
Ta bort ljudtexter
För att ta bort undertexter från en ljudram, använd metoderna som tillhandahålls av CaptionsCollection, såsom clear, remove, eller remove_at. Följande exempel tar bort alla undertextspår från en ljudram.
with slides.Presentation("audio_with_captions.pptx") as presentation:
slide = presentation.slides[0]
audio_frame = slide.shapes[0] # typ: slides.AudioFrame
# Ta bort alla undertextspår från ljudramen.
audio_frame.caption_tracks.clear()
presentation.save("audio_without_captions.pptx", slides.export.SaveFormat.PPTX)
Extrahera ljud
Aspose.Slides för Python via .NET 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 Presentation-klassen och ladda presentationen som innehåller ljudet.
- Hämta den relevanta bildens referens via dess index.
- Åtkomst till bildspelsövergångarna för bilden.
- Extrahera ljudet som byte‑data.
Denna Python‑kod visar hur du extraherar ljudet som används i en bild:
import aspose.slides as slides
#with slides.Presentation("AudioSlide.pptx") as pres:
with slides.Presentation("AudioFrameEmbed_changed.pptx") as pres:
# Hämtar den önskade bilden
slide = pres.slides[0]
# Hämtar bildspelsövergångseffekterna för bilden
transition = slide.slide_show_transition
#Extraherar ljudet i byte array
audio = transition.sound.binary_data
print("Length: " + str(len(audio)))
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 presentationsstorleken under kontroll.
Kan jag ersätta 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 embedded audio‑objektet mot ett annat från presentationens audio collection. Ramens formatering och de flesta uppspelningsinställningar förblir intakta.
Ändrar beskärning den underliggande ljuddata som lagras i presentationen?
Nej. Beskärning justerar endast uppspelningsgränserna. De ursprungliga ljudbytarna förblir orörda och är åtkomliga genom det inbäddade ljudet eller presentationens ljudsamling.