Audio beheren in presentaties met C++
Overzicht
Dit artikel legt uit hoe u werkt met audio‑kaders in Aspose.Slides. Het laat zien hoe u ingesloten audio toevoegt aan dia’s, de miniatuur van het audio‑kader aanpast, afspeelopties configureert zoals volume, looping, verbergen, trimmen en fade‑tijden, en audio extraheert die wordt gebruikt in diavoorstelling‑overgangen.
Audiokaders maken
Aspose.Slides voor C++ stelt u in staat audio‑bestanden toe te voegen aan dia’s. De audio‑bestanden worden ingesloten in dia’s als audio‑kaders.
- Maak een instantie van de Presentation‑klasse.
- Verkrijg een referentie naar een dia via de index.
- Laad de audio‑bestandstream die u in de dia wilt insluiten.
- Voeg het ingesloten audio‑kader (met het audio‑bestand) toe aan de dia.
- Stel PlayMode en
Volumein die worden blootgesteld door het IAudioFrame‑object. - Sla de gewijzigde presentatie op.
Deze C++‑code laat zien hoe u een ingesloten audio‑kader aan een dia toevoegt:
// Instantieert een Presentation‑klasse die een presentatiebestand vertegenwoordigt
auto pres = System::MakeObject<Presentation>();
// Haalt de eerste dia op
auto sld = pres->get_Slides()->idx_get(0);
// Laadt het wav‑geluidsbestand naar een stream
auto fstr = System::MakeObject<FileStream>(u"sampleaudio.wav", FileMode::Open, FileAccess::Read);
// Voegt het Audio‑frame toe
auto audioFrame = sld->get_Shapes()->AddAudioFrameEmbedded(50.0f, 150.0f, 100.0f, 100.0f, fstr);
// Stelt de afspeelmodus en het volume van de audio in
audioFrame->set_PlayMode(AudioPlayModePreset::Auto);
audioFrame->set_Volume(AudioVolumeMode::Loud);
// Schrijft het PowerPoint‑bestand naar de schijf
pres->Save(u"AudioFrameEmbed_out.pptx", SaveFormat::Pptx);
Miniatuur van audio‑kader wijzigen
Wanneer u een audio‑bestand aan een presentatie toevoegt, verschijnt de audio als een kader met een standaard‑afbeelding (zie de afbeelding in de sectie hieronder). U kunt de miniatuur van het audio‑kader wijzigen (uw favoriete afbeelding instellen).
Deze C++‑code laat zien hoe u de miniatuur of voorbeeldafbeelding van een audio‑kader wijzigt:
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slides()->idx_get(0);
// Voegt een audio‑frame toe aan de dia met een opgegeven positie en grootte.
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);
// Voegt een afbeelding toe aan de presentatieresources.
auto imageStream = System::IO::File::OpenRead(u"eagle.jpeg");
auto audioImage = presentation->get_Images()->AddImage(imageStream);
// Stelt de afbeelding in voor het audio‑frame. // <-----
//Slaat de gewijzigde presentatie op naar schijf
presentation->Save(u"example_out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);
Afspelenopties van audio wijzigen
Aspose.Slides voor C++ laat u opties aanpassen die het afspelen of de eigenschappen van audio regelen. U kunt bijvoorbeeld het volume aanpassen, de audio in een lus afspelen, of het audiosymbool verbergen.
Het Audio‑opties‑paneel in Microsoft PowerPoint:

PowerPoint Audio‑opties die overeenkomen met Aspose.Slides AudioFrame‑methoden:
- Start keuzelijst komt overeen met de AudioFrame::set_PlayMode‑methode
- Volume komt overeen met de AudioFrame::set_Volume‑methode
- Play Across Slides komt overeen met de AudioFrame::set_PlayAcrossSlides‑methode
- Loop until Stopped komt overeen met de AudioFrame::set_PlayLoopMode‑methode
- Hide During Show komt overeen met de AudioFrame::set_HideAtShowing‑methode
- Rewind after Playing komt overeen met de AudioFrame::set_RewindAudio‑methode
PowerPoint Bewerken‑opties die overeenkomen met Aspose.Slides AudioFrame‑eigenschappen:
- Fade In komt overeen met de AudioFrame.set_FadeInDuration‑methode
- Fade Out komt overeen met de AudioFrame.set_FadeOutDuration‑methode
- Trim Audio Start Time komt overeen met de AudioFrame.set_TrimFromStart‑methode
- Trim Audio End Time heeft een waarde die gelijk is aan de audio‑duur min de waarde van de AudioFrame.set_TrimFromEnd‑methode
De PowerPoint Volume‑regelaar op het audio‑bedieningspaneel komt overeen met de AudioFrame.set_VolumeValue‑methode. Hiermee kunt u het audiovolume wijzigen als een percentage.
Zo wijzigt u de afspelenopties van audio:
- Create of verkrijg het audio‑kader.
- Stel nieuwe waarden in voor de audio‑kader‑eigenschappen die u wilt aanpassen.
- Sla het gewijzigde PowerPoint‑bestand op.
Deze C++‑code demonstreert een bewerking waarbij de opties van een audio‑bestand worden aangepast:
auto pres = System::MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");
// Haalt een vorm op
auto shape = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0);
// Converteert de vorm naar een AudioFrame‑vorm
auto audioFrame = System::ExplicitCast<AudioFrame>(shape);
// Stelt de afspeelmodus in op afspelen bij klik
audioFrame->set_PlayMode(AudioPlayModePreset::OnClick);
// Stelt het volume in op laag
audioFrame->set_Volume(AudioVolumeMode::Low);
// Stelt in dat de audio over meerdere dia's wordt afgespeeld
audioFrame->set_PlayAcrossSlides(true);
// Schakelt lus voor de audio uit
audioFrame->set_PlayLoopMode(false);
// Verbergt het AudioFrame tijdens de diavoorstelling
audioFrame->set_HideAtShowing(true);
// Spoelt de audio terug naar het begin na het afspelen
audioFrame->set_RewindAudio(true);
// Slaat het PowerPoint‑bestand op naar schijf
pres->Save(u"AudioFrameEmbed_changed.pptx", SaveFormat::Pptx);
Dit C++‑voorbeeld laat zien hoe u een nieuw audio‑kader met ingesloten audio toevoegt, het trimt en de fade‑tijden instelt:
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);
// Stelt de trim-startoffset in op 1,5 seconden
// Stelt de trim-eindoffset in op 2 seconden
// Stelt de fade-in-duur in op 200 ms
// Stelt de fade-out-duur in op 500 ms
pres->Save(u"AudioFrameTrimFade_out.pptx", SaveFormat::Pptx);
pres->Dispose();
De volgende code‑sample laat zien hoe u een audio‑kader met ingesloten audio ophaalt en het volume op 85 % zet:
auto pres = MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");
// Haalt een audio-frame-vorm op
auto audioFrame = ExplicitCast<IAudioFrame>(pres->get_Slide(0)->get_Shape(0));
// Stelt het audio volume in op 85%
audioFrame->set_VolumeValue(85);
pres->Save(u"AudioFrameValue_out.pptx", SaveFormat::Pptx);
pres->Dispose();
Audiobijschriften beheren
Aspose.Slides stelt u in staat gesloten bijschriften toe te voegen aan een audio‑kader via de get_CaptionTracks‑methode. Deze methode retourneert een ICaptionsCollection, waarmee u WebVTT‑bijschriftsporen kunt toevoegen, door bestaande sporen kunt itereren en ze kunt verwijderen wanneer nodig.
Audiobijschriften toevoegen
Gebruik de get_CaptionTracks‑methode om een of meer bijschriftsporen aan een audio‑kader te koppelen. In het volgende voorbeeld wordt een audio‑bestand aan een dia toegevoegd en vervolgens wordt een nieuw bijschriftspoor geladen vanuit een .vtt‑bestand.
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();
Audiobijschriften extraheren
U kunt door de bijschriftsporen die aan een audio‑kader zijn gekoppeld itereren en ze opslaan als .vtt‑bestanden. Elk bijschriftspoor stelt zijn binaire gegevens en unieke identificator bloot, die gebruikt kan worden bij het exporteren van bijschriften.
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())
{
// Sla elk bijschriftspoor op als een .vtt-bestand.
auto fileName = captionTrack->get_CaptionId().ToString() + u".vtt";
File::WriteAllBytes(fileName, captionTrack->get_BinaryData());
}
}
}
presentation->Dispose();
Audiobijschriften verwijderen
Om bijschriften van een audio‑kader te verwijderen, gebruikt u de methoden die worden aangeboden door ICaptionsCollection, zoals Clear, Remove, of RemoveAt. Het onderstaande voorbeeld verwijdert alle bijschriftsporen van een audio‑kader.
auto presentation = MakeObject<Presentation>(u"audio_with_captions.pptx");
auto slide = presentation->get_Slide(0);
auto audioFrame = ExplicitCast<IAudioFrame>(slide->get_Shape(0));
// Verwijder alle bijschriftsporen van het audio‑frame.
audioFrame->get_CaptionTracks()->Clear();
presentation->Save(u"audio_without_captions.pptx", SaveFormat::Pptx);
presentation->Dispose();
Audio extraheren
Aspose.Slides stelt u in staat het geluid dat wordt gebruikt in diavoorstellings‑overgangen te extraheren. U kunt bijvoorbeeld het geluid extraheren dat in een specifieke dia wordt gebruikt.
- Maak een instantie van de Presentation‑klasse en laad de presentatie die de audio bevat.
- Verkrijg de referentie naar de betreffende dia via de index.
- Benader de diavoorstellings‑overgangen voor de dia.
- Extraheer het geluid als byte‑gegevens.
Deze C++‑code laat zien hoe u de audio extrahereert die in een dia wordt gebruikt:
String presName = u"AudioSlide.pptx";
// Instantieert een Presentation‑klasse die een presentatiebestand vertegenwoordigt
auto pres = System::MakeObject<Presentation>(presName);
// Toegang tot de gewenste dia
auto slide = pres->get_Slides()->idx_get(0);
// Haalt de diavoorstelling‑overgangseffecten op voor de dia
auto transition = slide->get_SlideShowTransition();
// Extraheert het geluid als byte‑array
auto audio = transition->get_Sound()->get_BinaryData();
Console::WriteLine(String(u"Length: ") + audio->get_Length());
FAQ
Kan ik hetzelfde audio‑bestand hergebruiken op meerdere dia’s zonder de bestandsgrootte te laten toenemen?
Ja. Voeg de audio één keer toe aan de gedeelde audio collection van de presentatie en maak extra audio‑kaders die naar dat bestaande bestand verwijzen. Dit voorkomt duplicatie van mediagegevens en houdt de presentatiegrootte onder controle.
Kan ik het geluid in een bestaand audio‑kader vervangen zonder de vorm opnieuw te maken?
Ja. Voor een gelinkte audio past u het link path aan zodat het naar het nieuwe bestand wijst. Voor een ingesloten audio verwisselt u het embedded audio‑object met een ander uit de audio collection van de presentatie. De opmaak van het kader en de meeste afspeelinstellingen blijven behouden.
Verandert trimmen de onderliggende audio‑gegevens die in de presentatie zijn opgeslagen?
Nee. Trimmen past alleen de afspeelgrenzen aan. De oorspronkelijke audio‑bytes blijven ongewijzigd en zijn toegankelijk via de ingesloten audio of de audio‑collectie van de presentatie.