Gestire l'audio nelle presentazioni usando Python
Panoramica
Questo articolo spiega come lavorare con i frame audio in Aspose.Slides. Mostra come aggiungere audio incorporato alle diapositive, personalizzare la miniatura del frame audio, configurare le opzioni di riproduzione come volume, ripetizione, nascondere, ritaglio e durata di dissolvenza, ed estrarre l’audio utilizzato nelle transizioni della presentazione.
Creare frame audio
Aspose.Slides per Python tramite .NET consente di aggiungere file audio alle diapositive. I file audio sono incorporati nelle diapositive come frame audio.
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento a una diapositiva tramite il suo indice.
- Carica lo stream del file audio che desideri incorporare nella diapositiva.
- Aggiungi il frame audio incorporato (contenente il file audio) alla diapositiva.
- Imposta PlayMode e
Volumeesposti dall’oggetto IAudioFrame. - Salva la presentazione modificata.
Questo codice Python mostra come aggiungere un frame audio incorporato a una diapositiva:
import aspose.slides as slides
# Istanzia una classe di presentazione che rappresenta un file di presentazione
with slides.Presentation() as pres:
# Ottiene la prima diapositiva
sld = pres.slides[0]
# Carica il file audio wav nello stream
with open(path + "sampleaudio.wav", "rb") as in_file:
# Aggiunge il Frame Audio
audio_frame = sld.shapes.add_audio_frame_embedded(50, 150, 100, 100, in_file)
# Imposta la Modalità di riproduzione e il Volume dell'audio
audio_frame.play_mode = slides.AudioPlayModePreset.AUTO
audio_frame.volume = slides.AudioVolumeMode.LOUD
# Scrive il file PowerPoint su disco
pres.save("AudioFrameEmbed_out.pptx", slides.export.SaveFormat.PPTX)
Modifica miniatura del frame audio
Quando aggiungi un file audio a una presentazione, l’audio appare come un frame con un’immagine predefinita standard (vedi l’immagine nella sezione seguente). Puoi modificare la miniatura del frame audio (impostare l’immagine preferita).
Questo codice Python mostra come modificare la miniatura o l’immagine di anteprima di un frame audio:
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Aggiunge un frame audio alla diapositiva con una posizione e dimensione specificate.
with open("sample2.mp3", "rb") as audio_fs:
audioFrame = slide.shapes.add_audio_frame_embedded(150, 100, 50, 50, audio_fs)
# Aggiunge un'immagine alle risorse della presentazione.
with open("eagle.jpeg", "rb") as image_fs:
data = image_fs.read()
audioImage = presentation.images.add_image(data)
# Imposta l'immagine per il frame audio.
audioFrame.picture_format.picture.image = audioImage
#Salva la presentazione modificata su disco
presentation.save("example_out.pptx", slides.export.SaveFormat.PPTX)
Modifica opzioni di riproduzione audio
Aspose.Slides per Python tramite .NET consente di modificare le opzioni che controllano la riproduzione o le proprietà di un audio. Ad esempio, è possibile regolare il volume di un audio, impostare la riproduzione in loop o persino nascondere l’icona audio.
Il pannello Audio Options di Microsoft PowerPoint:

Le Audio Options di PowerPoint corrispondenti alle proprietà di Aspose.Slides AudioFrame :
- Start la lista a discesa corrisponde alla proprietà AudioFrame.play_mode
- Volume corrisponde alla proprietà AudioFrame.volume
- Play Across Slides corrisponde alla proprietà AudioFrame.play_across_slides
- Loop until Stopped corrisponde alla proprietà AudioFrame.play_loop_mode
- Hide During Show corrisponde alla proprietà AudioFrame.hide_at_showing
- Rewind after Playing corrisponde alla proprietà AudioFrame.rewind_audio
Opzioni Editing di PowerPoint corrispondenti alle proprietà di Aspose.Slides AudioFrame :
- Fade In corrisponde alla proprietà AudioFrame.fade_in_duration
- Fade Out corrisponde alla proprietà AudioFrame.fade_out_duration
- Trim Audio Start Time corrisponde alla proprietà AudioFrame.trim_from_start
- Trim Audio End Time il valore è pari alla durata dell’audio meno il valore della proprietà AudioFrame.trim_from_end
Il Volume controll di PowerPoint sul pannello di controllo audio corrisponde alla proprietà AudioFrame.volume_value . Consente di modificare il volume dell’audio in percentuale.
Ecco come modificare le opzioni di riproduzione audio:
- Crea o ottieni il Frame Audio.
- Imposta nuovi valori per le proprietà del Frame Audio che desideri modificare.
- Salva il file PowerPoint modificato.
Questo codice Python dimostra un’operazione in cui le opzioni di un audio vengono regolate:
import aspose.slides as slides
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# Ottiene la forma AudioFrame
audioFrame = pres.slides[0].shapes[0]
# Imposta la modalità di riproduzione su riproduci al clic
audioFrame.play_mode = slides.AudioPlayModePreset.ON_CLICK
# Imposta il volume su Basso
audioFrame.volume = slides.AudioVolumeMode.LOW
# Imposta l'audio per riprodursi su più diapositive
audioFrame.play_across_slides = True
# Disabilita il loop per l'audio
audioFrame.play_loop_mode = False
# Nasconde il frame audio durante la presentazione
audioFrame.hide_at_showing = True
# Riavvolge l'audio all'inizio dopo la riproduzione
audioFrame.rewind_audio = True
# Salva il file PowerPoint su disco
pres.save("AudioFrameEmbed_changed.pptx", slides.export.SaveFormat.PPTX)
Questo esempio Python mostra come aggiungere un nuovo frame audio con audio incorporato, ritagliarlo e impostare le durate di dissolvenza:
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)
# Imposta l'offset di inizio del ritaglio a 1,5 secondi
# Imposta l'offset di fine del ritaglio a 2 secondi
# Imposta la durata della dissolvenza in ingresso a 200 ms
# Imposta la durata della dissolvenza in uscita a 500 ms
pres.save("AudioFrameTrimFade_out.pptx", slides.export.SaveFormat.PPTX)
Il seguente esempio di codice mostra come recuperare un frame audio con audio incorporato e impostare il suo volume all'85%:
with slides.Presentation("AudioFrameEmbed_out.pptx") as pres:
# Ottiene una forma di frame audio
audio_frame = pres.slides[0].shapes[0]
# Imposta il volume audio all'85%
audio_frame.volume_value = 85.0
pres.save("AudioFrameValue_out.pptx", slides.export.SaveFormat.PPTX)
Gestire i sottotitoli audio
Aspose.Slides consente di aggiungere didascalie chiuse a un frame audio tramite la proprietà caption_tracks. Questa proprietà restituisce una CaptionsCollection, che permette di aggiungere tracce di sottotitoli WebVTT, iterare le tracce esistenti e rimuoverle quando necessario.
Aggiungere sottotitoli audio
Utilizza la proprietà caption_tracks per collegare una o più tracce di sottotitoli a un frame audio. Nell’esempio seguente, un file audio viene aggiunto a una diapositiva e poi una nuova traccia di sottotitoli viene caricata da un file .vtt.
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)
# Aggiungi una nuova traccia di didascalie da un file WebVTT.
presentation.save("audio_with_captions.pptx", slides.export.SaveFormat.PPTX)
Estrarre sottotitoli audio
Puoi iterare le tracce di sottotitoli associate a un frame audio e salvarle come file .vtt. Ogni traccia di sottotitoli espone i propri dati binari e l’identificatore univoco, che può essere usato durante l’esportazione dei sottotitoli.
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:
# Salva la traccia di sottotitoli come file .vtt.
with open(f"{caption_track.caption_id}.vtt", "wb") as track_stream:
track_stream.write(caption_track.binary_data)
Rimuovere i sottotitoli audio
Per rimuovere i sottotitoli da un frame audio, utilizza i metodi forniti da CaptionsCollection, come clear, remove, o remove_at. L’esempio seguente rimuove tutte le tracce di sottotitoli da un frame audio.
with slides.Presentation("audio_with_captions.pptx") as presentation:
slide = presentation.slides[0]
audio_frame = slide.shapes[0] # tipo: slides.AudioFrame
# Rimuovi tutte le tracce di sottotitoli dal frame audio.
audio_frame.caption_tracks.clear()
presentation.save("audio_without_captions.pptx", slides.export.SaveFormat.PPTX)
Estrarre audio
Aspose.Slides per Python tramite .NET consente di estrarre il suono utilizzato nelle transizioni della presentazione. Ad esempio, è possibile estrarre il suono usato in una diapositiva specifica.
- Crea un’istanza della classe Presentation e carica la presentazione che contiene l’audio.
- Ottieni il riferimento alla diapositiva pertinente tramite il suo indice.
- Accedi alle transizioni della presentazione per la diapositiva.
- Estrai il suono in dati byte.
Questo codice Python mostra come estrarre l’audio utilizzato in una diapositiva:
import aspose.slides as slides
#with slides.Presentation("AudioSlide.pptx") as pres:
with slides.Presentation("AudioFrameEmbed_changed.pptx") as pres:
# Accede alla diapositiva desiderata
slide = pres.slides[0]
# Ottiene gli effetti di transizione della presentazione per la diapositiva
transition = slide.slide_show_transition
#Estrae il suono in un array di byte
audio = transition.sound.binary_data
print("Length: " + str(len(audio)))
FAQ
Posso riutilizzare lo stesso file audio in più diapositive senza aumentare le dimensioni del file?
Sí. Aggiungi l’audio una sola volta alla audio collection condivisa della presentazione e crea frame audio aggiuntivi che fanno riferimento a quell’asset esistente. Questo evita la duplicazione dei dati multimediali e mantiene le dimensioni della presentazione sotto controllo.
Posso sostituire il suono in un frame audio esistente senza ricreare la forma?
Sí. Per un suono collegato, aggiorna il link path per puntare al nuovo file. Per un suono incorporato, sostituisci l’oggetto embedded audio con un altro proveniente dalla audio collection della presentazione. La formattazione del frame e la maggior parte delle impostazioni di riproduzione rimangono intatte.
Il ritaglio modifica i dati audio sottostanti memorizzati nella presentazione?
No. Il ritaglio regola solo i limiti di riproduzione. I byte originali dell’audio rimangono intatti e accessibili tramite l’audio incorporato o la audio collection della presentazione.