# Gérer l'audio dans les présentations avec C++

> Créer et contrôler les cadres audio dans Aspose.Slides pour C++ — exemples de code pour intégrer, rogner, boucler et configurer la lecture dans les présentations PPT, PPTX et ODP.

Source: https://docs.aspose.com/slides/fr/cpp/audio-frame/
Updated: 2026-04-17

## **Créer des cadres audio**

Aspose.Slides for C++ vous permet d’ajouter des fichiers audio aux diapositives. Les fichiers audio sont intégrés aux diapositives sous forme de cadres audio. 

1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/fr/cpp/class/aspose.slides.presentation).
2. Obtenez la référence d’une diapositive grâce à son indice.
3. Chargez le flux du fichier audio que vous souhaitez intégrer dans la diapositive.
4. Ajoutez le cadre audio intégré (contenant le fichier audio) à la diapositive.
5. Définissez le [PlayMode](https://reference.aspose.com/slides/fr/cpp/namespace/aspose.slides#a1e0dfa632c5498e693145d42f3cf8e4c) et la `Volume` exposés par l’objet [IAudioFrame](https://reference.aspose.com/slides/fr/cpp/class/aspose.slides.i_audio_frame).
6. Enregistrez la présentation modifiée.

Ce code C++ vous montre comment ajouter un cadre audio intégré à une diapositive :

``` cpp
// Instancie une classe Presentation qui représente un fichier de présentation
auto pres = System::MakeObject<Presentation>();

// Récupère la première diapositive
auto sld = pres->get_Slides()->idx_get(0);

// Charge le fichier son wav dans un flux
auto fstr = System::MakeObject<FileStream>(u"sampleaudio.wav", FileMode::Open, FileAccess::Read);

// Ajoute le cadre audio
auto audioFrame = sld->get_Shapes()->AddAudioFrameEmbedded(50.0f, 150.0f, 100.0f, 100.0f, fstr);

// Définit le mode de lecture et le volume de l'audio
audioFrame->set_PlayMode(AudioPlayModePreset::Auto);
audioFrame->set_Volume(AudioVolumeMode::Loud);

// Écrit le fichier PowerPoint sur le disque
pres->Save(u"AudioFrameEmbed_out.pptx", SaveFormat::Pptx);
```

## **Modifier la miniature du cadre audio**

Lorsque vous ajoutez un fichier audio à une présentation, l’audio apparaît comme un cadre avec une image par défaut standard (voir l’image dans la section ci‑dessous). Vous pouvez changer la miniature du cadre audio (définir l’image de votre choix).

Ce code C++ vous montre comment modifier la miniature ou l’image de prévisualisation d’un cadre audio :

```cpp
auto presentation = System::MakeObject<Presentation>();
        
auto slide = presentation->get_Slides()->idx_get(0);
        
// Ajoute un cadre audio à la diapositive avec une position et une taille spécifiées.
auto audioStream = System::MakeObject<System::IO::FileStream>(u"sample2.mp3", 
    System::IO::FileMode::Open, System::IO::FileAccess::Read);
    
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(150.0f, 100.0f, 50.0f, 50.0f, audioStream);
            
// Ajoute une image aux ressources de la présentation.
auto imageStream = System::IO::File::OpenRead(u"eagle.jpeg");
auto audioImage = presentation->get_Images()->AddImage(imageStream);
            
// Définit l'image pour le cadre audio.
audioFrame->get_PictureFormat()->get_Picture()->set_Image(audioImage); // <-----
        
//Enregistre la présentation modifiée sur le disque
presentation->Save(u"example_out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);
```

## **Modifier les options de lecture audio**

Aspose.Slides for C++ vous permet de modifier les options qui contrôlent la lecture ou les propriétés d’un audio. Par exemple, vous pouvez ajuster le volume, définir la lecture en boucle ou même masquer l’icône audio.

Le volet **Audio Options** dans Microsoft PowerPoint :

![example1_image](audio_frame_0.png)

Les **Audio Options** de PowerPoint qui correspondent aux méthodes Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/) :

- **Start** correspond à la méthode [AudioFrame::set_PlayMode](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_playmode/)
- **Volume** correspond à la méthode [AudioFrame::set_Volume](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_volume/)
- **Play Across Slides** correspond à la méthode [AudioFrame::set_PlayAcrossSlides](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_playacrossslides/)
- **Loop until Stopped** correspond à la méthode [AudioFrame::set_PlayLoopMode](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_playloopmode/)
- **Hide During Show** correspond à la méthode [AudioFrame::set_HideAtShowing](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_hideatshowing/)
- **Rewind after Playing** correspond à la méthode [AudioFrame::set_RewindAudio](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_rewindaudio/)

Les options **Editing** de PowerPoint qui correspondent aux propriétés Aspose.Slides [AudioFrame](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/) :

- **Fade In** correspond à la méthode [AudioFrame.set_FadeInDuration](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_fadeinduration/)
- **Fade Out** correspond à la méthode [AudioFrame.set_FadeOutDuration](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_fadeoutduration/)
- **Trim Audio Start Time** correspond à la méthode [AudioFrame.set_TrimFromStart](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_trimfromstart/)
- **Trim Audio End Time** correspond à la durée audio moins la valeur de la méthode [AudioFrame.set_TrimFromEnd](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_trimfromend/)

Le **contrôle du volume** dans le panneau de contrôle audio de PowerPoint correspond à la méthode [AudioFrame.set_VolumeValue](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_volumevalue/). Il vous permet de modifier le volume audio en pourcentage.

Voici comment modifier les options de lecture audio :

1. [Créer](#creating-audio-frame) ou récupérez le cadre audio.
2. Définissez les nouvelles valeurs pour les propriétés du cadre audio que vous souhaitez ajuster.
3. Enregistrez le fichier PowerPoint modifié.

Ce code C++ montre une opération dans laquelle les options d’un audio sont ajustées :

``` cpp 
auto pres = System::MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");

// Récupère une forme
auto shape = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0);

// Convertit la forme en AudioFrame
auto audioFrame = System::ExplicitCast<AudioFrame>(shape);

// Définit le mode de lecture pour lire au clic
audioFrame->set_PlayMode(AudioPlayModePreset::OnClick);

// Définit le volume à bas
audioFrame->set_Volume(AudioVolumeMode::Low);

// Définit la lecture de l’audio à travers les diapositives
audioFrame->set_PlayAcrossSlides(true);

// Désactive la boucle pour l’audio
audioFrame->set_PlayLoopMode(false);

// Masque le cadre audio pendant le diaporama
audioFrame->set_HideAtShowing(true);

// Rembobine l’audio au départ après la lecture
audioFrame->set_RewindAudio(true);

// Enregistre le fichier PowerPoint sur le disque
pres->Save(u"AudioFrameEmbed_changed.pptx", SaveFormat::Pptx);
```

Cet exemple C++ montre comment ajouter un nouveau cadre audio avec audio intégré, le rogner et définir les durées de fondu :

```cpp
auto pres = MakeObject<Presentation>();
auto slide = pres->get_Slide(0);

auto audioData = File::ReadAllBytes(u"sampleaudio.mp3");
auto audio = pres->get_Audios()->AddAudio(audioData);
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(50, 50, 100, 100, audio);

// Sets the trimming start offset to 1.5 seconds
audioFrame->set_TrimFromStart(1500);
// Sets the trimming end offset to 2 seconds
audioFrame->set_TrimFromEnd(2000);

// Sets the fade-in duration to 200 ms
audioFrame->set_FadeInDuration(200);
// Sets the fade-out duration to 500 ms
audioFrame->set_FadeOutDuration(500);

pres->Save(u"AudioFrameTrimFade_out.pptx", SaveFormat::Pptx);
pres->Dispose();
```

L’exemple de code suivant montre comment récupérer un cadre audio avec audio intégré et régler son volume à 85 % :

```cpp
auto pres = MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");
    
// Obtient une forme de cadre audio
auto audioFrame = ExplicitCast<IAudioFrame>(pres->get_Slide(0)->get_Shape(0));

// Définit le volume audio à 85 %
audioFrame->set_VolumeValue(85);

pres->Save(u"AudioFrameValue_out.pptx", SaveFormat::Pptx);
pres->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 [get_CaptionTracks](https://reference.aspose.com/slides/fr/cpp/aspose.slides/iaudioframe/get_captiontracks/). Cette méthode renvoie une [ICaptionsCollection](https://reference.aspose.com/slides/fr/cpp/aspose.slides/icaptionscollection/), qui vous permet d’ajouter des pistes de sous‑titres WebVTT, d’itérer sur les pistes existantes et de les supprimer si nécessaire.

**Ajouter des légendes audio**

Utilisez la méthode [get_CaptionTracks](https://reference.aspose.com/slides/fr/cpp/aspose.slides/iaudioframe/get_captiontracks/) 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`.

```cpp
auto presentation = MakeObject<Presentation>();

auto audioData = File::ReadAllBytes(u"audio.mp3");
auto audio = presentation->get_Audios()->AddAudio(audioData);

auto slide = presentation->get_Slide(0);
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(10, 10, 50, 50, audio);

// Add a new caption track from a WebVTT file.
audioFrame->get_CaptionTracks()->Add(u"New track", u"track.vtt");

presentation->Save(u"audio_with_captions.pptx", SaveFormat::Pptx);
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, utilisables lors de l’exportation des sous‑titres.

```cpp
auto presentation = MakeObject<Presentation>(u"audio_with_captions.pptx");
auto slide = presentation->get_Slide(0);
for (auto&& shape : slide->get_Shapes())
{
    if (ObjectExt::Is<IAudioFrame>(shape))
    {
        auto audioFrame = ExplicitCast<IAudioFrame>(shape);
        for (auto&& captionTrack : audioFrame->get_CaptionTracks())
        {
            // Enregistre chaque piste de sous-titres en tant que fichier .vtt.
            auto fileName = captionTrack->get_CaptionId().ToString() + u".vtt";
            File::WriteAllBytes(fileName, captionTrack->get_BinaryData());
        }
    }
}
presentation->Dispose();
```

**Supprimer les légendes audio**

Pour supprimer les sous‑titres d’un cadre audio, utilisez les méthodes de [ICaptionsCollection](https://reference.aspose.com/slides/fr/cpp/aspose.slides/icaptionscollection/), telles que [Clear](https://reference.aspose.com/slides/fr/cpp/aspose.slides/icaptionscollection/clear/), [Remove](https://reference.aspose.com/slides/fr/cpp/aspose.slides/icaptionscollection/remove/), ou [RemoveAt](https://reference.aspose.com/slides/fr/cpp/aspose.slides/icaptionscollection/removeat/). L’exemple suivant supprime toutes les pistes de sous‑titres d’un cadre audio.

```cpp
auto presentation = MakeObject<Presentation>(u"audio_with_captions.pptx");
auto slide = presentation->get_Slide(0);
auto audioFrame = ExplicitCast<IAudioFrame>(slide->get_Shape(0));

// Supprime toutes les pistes de sous‑titres du cadre audio.
audioFrame->get_CaptionTracks()->Clear();

presentation->Save(u"audio_without_captions.pptx", SaveFormat::Pptx);
presentation->Dispose();
```

## **Extraire l'audio**
Aspose.Slides vous permet d’extraire le son utilisé dans les transitions d’un diaporama. Par exemple, vous pouvez extraire le son utilisé dans une diapositive spécifique.

1. Créez une instance de la classe [Presentation](https://reference.aspose.com/slides/fr/cpp/class/aspose.slides.presentation) et chargez la présentation contenant l’audio.
2. Obtenez la référence de la diapositive concernée grâce à son indice.
3. Accédez aux transitions du diaporama pour la diapositive.
4. Extrayez le son sous forme de données binaires.

Ce code C++ montre comment extraire l’audio utilisé dans une diapositive :

``` cpp
String presName = u"AudioSlide.pptx";

// Instancie une classe Presentation qui représente un fichier de présentation
auto pres = System::MakeObject<Presentation>(presName);

// Accède à la diapositive souhaitée
auto slide = pres->get_Slides()->idx_get(0);

// Obtient les effets de transition du diaporama pour la diapositive
auto transition = slide->get_SlideShowTransition();

// Extrait le son sous forme de tableau d'octets
auto audio = transition->get_Sound()->get_BinaryData();

Console::WriteLine(String(u"Length: ") + audio->get_Length());
```

## **FAQ**

**Puis‑je réutiliser le même fichier audio sur plusieurs diapositives sans augmenter la taille du fichier ?**

Oui. Ajoutez l’audio une fois à la [collection audio partagée](https://reference.aspose.com/slides/fr/cpp/aspose.slides/presentation/get_audios/) de la présentation et créez des cadres audio supplémentaires qui référencent cet actif existant. Cela évite la duplication des 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 [link path](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_linkpathlong/) afin qu’il pointe vers le nouveau fichier. Pour un son intégré, remplacez l’objet [embedded audio](https://reference.aspose.com/slides/fr/cpp/aspose.slides/audioframe/set_embeddedaudio/) par un autre provenant de la [collection audio](https://reference.aspose.com/slides/fr/cpp/aspose.slides/presentation/get_audios/) de la présentation. Le formatage 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 n’ajuste que les limites de lecture. Les octets audio d’origine restent intacts et accessibles via l’audio intégré ou la collection audio de la présentation.
