Gérer l'audio dans les présentations avec Python
Vue d’ensemble
Cet article explique comment travailler avec les cadres audio dans Aspose.Slides. Il montre comment ajouter de l’audio intégré aux diapositives, personnaliser la miniature du cadre audio, configurer les options de lecture telles que le volume, la boucle, le masquage, le découpage et les durées d’estompage, et extraire l’audio utilisé dans les transitions du diaporama.
Créer des cadres audio
Aspose.Slides for Python via Java vous permet d’ajouter des fichiers audio aux diapositives. Les fichiers audio sont intégrés aux diapositives sous forme de cadres audio.
- Créez une instance de la classe Presentation .
- Obtenez une référence à une diapositive par son index.
- Lisez le fichier audio que vous souhaitez intégrer dans la diapositive.
- Ajoutez le cadre audio intégré (contenant le fichier audio) à la diapositive.
- Utilisez setPlayMode et setVolume exposés par l’objet AudioFrame .
- Enregistrez la présentation modifiée.
Ce code Python vous montre comment ajouter un cadre audio intégré à une diapositive :
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AudioPlayModePreset, AudioVolumeMode, Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
audio_data = Path("audio.wav").read_bytes()
java_audio_data = jpype.JArray(jpype.JByte)(audio_data)
audio = presentation.getAudios().addAudio(java_audio_data)
audio_frame = slide.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, audio)
audio_frame.setPlayMode(AudioPlayModePreset.Auto)
audio_frame.setVolume(AudioVolumeMode.Loud)
presentation.save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Modifier la vignette du cadre audio
Lorsque vous ajoutez un fichier audio à une présentation, l’audio apparaît sous forme d’un cadre avec une image par défaut standard (voir l’image dans la section ci‑dessous). Vous pouvez changer l’image d’aperçu du cadre audio par une image de votre choix.
Ce code Python vous montre comment changer la vignette ou l’image d’aperçu d’un cadre audio :
from pathlib import Path
import jpime
import asposeslides
if not jpime.isJVMStarted():
jpime.startJVM()
from asposeslides.api import Images, Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
audio_data = Path("sample2.mp3").read_bytes()
java_audio_data = jpime.JArray(jpime.JByte)(audio_data)
audio = presentation.getAudios().addAudio(java_audio_data)
audio_frame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audio)
image = Images.fromFile("eagle.jpeg")
try:
picture = presentation.getImages().addImage(image)
finally:
image.dispose()
audio_frame.getPictureFormat().getPicture().setImage(picture)
presentation.save("example_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Modifier les options de lecture audio
Aspose.Slides for Python via Java vous permet de modifier les options qui contrôlent la lecture audio ou ses propriétés. Par exemple, vous pouvez régler le volume audio, définir l’audio en boucle ou même masquer l’icône audio.
Le Audio Options pane in Microsoft PowerPoint:

Options audio de PowerPoint qui correspondent aux propriétés Aspose.Slides AudioFrame :
- Démarrer (liste déroulante) correspond à la méthode setPlayMode
- Volume correspond à la méthode setVolume
- Lire sur plusieurs diapositives correspond à la méthode setPlayAcrossSlides
- Boucler jusqu’à arrêt correspond à la méthode setPlayLoopMode
- Masquer pendant le diaporama correspond à la méthode setHideAtShowing
- Rembobiner après lecture correspond à la méthode setRewindAudio
Options d’édition de PowerPoint qui correspondent aux propriétés Aspose.Slides AudioFrame :
- Fondu d’entrée correspond à la méthode setFadeInDuration
- Fondu de sortie correspond à la méthode setFadeOutDuration
- Temps de début du rognage audio correspond à la méthode setTrimFromStart
- Temps de fin du rognage audio la valeur correspond à la durée audio moins la valeur définie par la méthode setTrimFromEnd
Le contrôle du volume de PowerPoint dans le panneau de contrôle audio correspond à la méthode setVolumeValue. Il vous permet de modifier le volume audio en pourcentage.
Voici comment modifier les options de lecture audio :
- Créer ou obtenir le cadre audio.
- Définissez de nouvelles valeurs pour les propriétés du cadre audio que vous souhaitez ajuster.
- Enregistrez le fichier PowerPoint modifié.
Ce code Python démontre une opération dans laquelle les options audio sont ajustées :
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AudioFrame, AudioPlayModePreset, AudioVolumeMode, Presentation, SaveFormat
presentation = Presentation("AudioFrameEmbed_out.pptx")
try:
audio_frame = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
if isinstance(audio_frame, AudioFrame):
# Lire au clic à faible volume, sur toutes les diapositives, sans boucle.
audio_frame.setPlayMode(AudioPlayModePreset.OnClick)
audio_frame.setVolume(AudioVolumeMode.Low)
audio_frame.setPlayAcrossSlides(True)
audio_frame.setPlayLoopMode(False)
# Masquer le cadre pendant le diaporama et rembobiner après la lecture.
audio_frame.setHideAtShowing(True)
audio_frame.setRewindAudio(True)
presentation.save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx)
else:
print("The shape is not an audio frame.")
finally:
presentation.dispose()
Ce code Python montre comment ajouter un nouveau cadre audio avec audio intégré, le rogner et définir les durées d’estompage :
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
audio_data = Path("sampleaudio.mp3").read_bytes()
java_audio_data = jpype.JArray(jpype.JByte)(audio_data)
audio = presentation.getAudios().addAudio(java_audio_data)
audio_frame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio)
# Couper 1.5 secondes du début et 2 secondes de la fin.
audio_frame.setTrimFromStart(1500.0)
audio_frame.setTrimFromEnd(2000.0)
# Définir le fondu d'entrée à 200 ms et le fondu de sortie à 500 ms.
audio_frame.setFadeInDuration(200.0)
audio_frame.setFadeOutDuration(500.0)
presentation.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
L’exemple de code suivant montre comment récupérer un cadre audio avec audio intégré et régler son volume à 85 % :
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AudioFrame, Presentation, SaveFormat
presentation = Presentation("AudioFrameEmbed_out.pptx")
try:
slide = presentation.getSlides().get_Item(0)
audio_frame = slide.getShapes().get_Item(0)
if isinstance(audio_frame, AudioFrame):
audio_frame.setVolumeValue(85.0)
presentation.save("AudioFrameValue_out.pptx", SaveFormat.Pptx)
else:
print("The shape is not an audio frame.")
finally:
presentation.dispose()
Gérer les légendes audio
Aspose.Slides vous permet d’ajouter des sous‑titres fermés à un cadre audio via la méthode getCaptionTracks. Cette méthode renvoie une CaptionsCollection, qui vous permet d’ajouter des pistes de sous‑titres WebVTT, d’itérer les pistes existantes et de les supprimer si nécessaire.
Ajouter des légendes audio
Utilisez la méthode getCaptionTracks pour attacher une ou plusieurs pistes de sous‑titres à un cadre audio. Dans l’exemple suivant, un fichier audio est ajouté à une diapositive, puis une nouvelle piste de sous‑titres est chargée depuis un fichier .vtt.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
audio_data = Path("audio.mp3").read_bytes()
java_audio_data = jpype.JArray(jpype.JByte)(audio_data)
audio = presentation.getAudios().addAudio(java_audio_data)
slide = presentation.getSlides().get_Item(0)
audio_frame = slide.getShapes().addAudioFrameEmbedded(10, 10, 50, 50, audio)
# Ajouter une nouvelle piste de sous‑titres à partir d'un fichier WebVTT.
audio_frame.getCaptionTracks().add("New track", "track.vtt")
presentation.save("audio_with_captions.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Extraire les légendes audio
Vous pouvez parcourir les pistes de sous‑titres associées à un cadre audio et les enregistrer sous forme de fichiers .vtt. Chaque piste expose ses données binaires et son identifiant unique, qui peuvent être utilisés lors de l’exportation des sous‑titres.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AudioFrame, Presentation
presentation = Presentation("audio_with_captions.pptx")
try:
slide = presentation.getSlides().get_Item(0)
for shape in slide.getShapes():
if isinstance(shape, AudioFrame):
for caption_track in shape.getCaptionTracks():
# Enregistrer la piste de sous‑titres sous forme de fichier .vtt.
file_path = Path(str(caption_track.getCaptionId()) + ".vtt")
caption_data = bytes(caption_track.getBinaryData())
file_path.write_bytes(caption_data)
finally:
presentation.dispose()
Supprimer les légendes audio
Pour supprimer les sous‑titres d’un cadre audio, utilisez les méthodes fournies par CaptionsCollection, telles que clear, remove ou removeAt. L’exemple suivant supprime toutes les pistes de sous‑titres d’un cadre audio.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AudioFrame, Presentation, SaveFormat
presentation = Presentation("audio_with_captions.pptx")
try:
slide = presentation.getSlides().get_Item(0)
audio_frame = slide.getShapes().get_Item(0)
if isinstance(audio_frame, AudioFrame):
audio_frame.getCaptionTracks().clear()
presentation.save("audio_without_captions.pptx", SaveFormat.Pptx)
else:
print("The shape is not an audio frame.")
finally:
presentation.dispose()
Extraire l’audio
Aspose.Slides for Python via Java vous permet d’extraire le son utilisé dans les transitions du diaporama. Par exemple, vous pouvez extraire le son utilisé dans une diapositive spécifique.
- Créez une instance de la classe Presentation et chargez la présentation contenant l’audio.
- Obtenez une référence à la diapositive concernée par son index.
- Accédez aux transitions du diaporama de la diapositive.
- Extrayez le son sous forme de données binaires.
Ce code Python vous montre comment extraire l’audio utilisé dans une diapositive :
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("AudioSlide.pptx")
try:
slide = presentation.getSlides().get_Item(0)
transition = slide.getSlideShowTransition()
sound = transition.getSound()
if sound is not None:
audio_data = sound.getBinaryData()
print("Length:", len(audio_data))
else:
print("The slide transition has no sound.")
finally:
presentation.dispose()
FAQ
Puis-je réutiliser le même fichier audio sur plusieurs diapositives sans gonfler la taille du fichier ?
Oui. Ajoutez l’audio une fois à la collection audio partagée de la présentation et créez des cadres audio supplémentaires qui font référence à cet élément existant. Cela évite de dupliquer les données multimédia et maintient la taille de la présentation sous contrôle.
Puis-je remplacer le son d’un cadre audio existant sans recréer la forme ?
Oui. Pour un son lié, mettez à jour le chemin du lien pour pointer vers le nouveau fichier. Pour un son intégré, échangez l’objet embedded audio avec un autre provenant de la collection audio de la présentation. Le format du cadre et la plupart des paramètres de lecture restent intacts.
Le rognage modifie-t-il les données audio sous‑jacentes stockées dans la présentation ?
Non. Le rognage ajuste uniquement les limites de lecture. Les octets audio originaux restent intacts et accessibles via l’audio intégré ou la collection audio de la présentation.