Hantera ljudramar i presentationer i .NET
Översikt
Den här artikeln förklarar hur man arbetar med ljudramar i Aspose.Slides. Den visar hur man lägger till inbäddat ljud i bilder, anpassar ljudramens miniatyr, konfigurerar uppspelningsalternativ såsom volym, loopning, gömning, beskärning och toningsvaraktigheter, samt extraherar ljud som används i bildspelsövergångar.
Skapa ljudramar
Aspose.Slides för .NET låter dig lägga till ljudfiler i bilder. Ljudfilerna bäddas in i bilder som ljudramar.
- Skapa en instans av Presentationklassen.
- Hämta en bilds referens via dess index.
- Läs in ljudfilströmmen som du vill bädda in i bilden.
- Lägg till den inbäddade ljudramen (som innehåller ljudfilen) till bilden.
- Ställ in PlayMode och
Volumesom exponeras av IAudioFrame-objektet. - Spara den ändrade presentationen.
Den här C#-koden visar hur du lägger till en inbäddad ljudram i en bild:
// Skapar en presentationsklass som representerar en presentationsfil
using (Presentation pres = new Presentation())
{
// Hämtar den första bilden
ISlide sld = pres.Slides[0];
// Laddar wav-ljudfilen till en ström
FileStream fstr = new FileStream("sampleaudio.wav", FileMode.Open, FileAccess.Read);
// Lägger till ljudramen
IAudioFrame audioFrame = sld.Shapes.AddAudioFrameEmbedded(50, 150, 100, 100, fstr);
// Ställer in uppspelningsläget och volymen för ljudet
audioFrame.PlayMode = AudioPlayModePreset.Auto;
audioFrame.Volume = AudioVolumeMode.Loud;
// Skriver PowerPoint-filen till disk
pres.Save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
}
Ändra ljudramens miniatyr
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).
Den här C#-koden visar hur du ändrar en ljudramens miniatyr eller förhandsgranskningsbild:
using (var presentation = new Presentation())
{
var slide = presentation.Slides[0];
// Lägger till en ljudram på bilden med en angiven position och storlek.
var audioStream = new FileStream("sample2.mp3", FileMode.Open, FileAccess.Read);
var audioFrame = slide.Shapes.AddAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.Dispose();
// Lägger till en bild i presentationens resurser.
var imageStream = File.OpenRead("eagle.jpeg");
var audioImage = presentation.Images.AddImage(imageStream);
imageStream.Dispose();
// Ställer in bilden för ljudramen.
audioFrame.PictureFormat.Picture.Image = audioImage; // <-----
//Sparar den ändrade presentationen till disk
presentation.Save("example_out.pptx", SaveFormat.Pptx);
}
Ändra ljuduppspelningsalternativ
Aspose.Slides för .NET låter dig ändra alternativ som styr ett ljuds uppspelning eller egenskaper. Till exempel kan du justera ett ljuds volym, ställa in att ljudet spelas i loop, eller till och med dölja ljudikonen.
Audio Options-fönstret i Microsoft PowerPoint:

PowerPoint Audio Options som motsvarar Aspose.Slides AudioFrame egenskaper:
- Start‑rullgardinsmenyn motsvarar egenskapen AudioFrame.PlayMode.
- Volume motsvarar egenskapen AudioFrame.Volume.
- Play Across Slides motsvarar egenskapen AudioFrame.PlayAcrossSlides.
- Loop until Stopped motsvarar egenskapen AudioFrame.PlayLoopMode.
- Hide During Show motsvarar egenskapen AudioFrame.HideAtShowing.
- Rewind after Playing motsvarar egenskapen AudioFrame.RewindAudio.
PowerPoint Editing-alternativ som motsvarar Aspose.Slides AudioFrame egenskaper:
- Fade In motsvarar egenskapen AudioFrame.FadeInDuration.
- Fade Out motsvarar egenskapen AudioFrame.FadeOutDuration.
- Trim Audio Start Time motsvarar egenskapen AudioFrame.TrimFromStart.
- Trim Audio End Time värdet är ljudets varaktighet minus värdet för AudioFrame.TrimFromEnd.
PowerPoint Volume control på ljudkontrollpanelen motsvarar egenskapen AudioFrame.VolumeValue. Den låter dig ändra ljudvolymen i procent.
Så här ändrar du ljuduppspelningsalternativen:
- Skapa eller hämta ljudramen.
- Ställ in nya värden för de Audio Frame‑egenskaper du vill justera.
- Spara den ändrade PowerPoint‑filen.
Den här C#-koden demonstrerar en operation där ett ljuds alternativ justeras:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Hämtar AudioFrame-formen
AudioFrame audioFrame = (AudioFrame)pres.Slides[0].Shapes[0];
// Ställer in uppspelningsläget till att spela vid klick
audioFrame.PlayMode = AudioPlayModePreset.OnClick;
// Ställer in volymen till Låg
audioFrame.Volume = AudioVolumeMode.Low;
// Ställer in ljudet att spela över bildspel
audioFrame.PlayAcrossSlides = true;
// Inaktiverar loop för ljudet
audioFrame.PlayLoopMode = false;
// Dölj AudioFrame under bildspelet
audioFrame.HideAtShowing = true;
// Spolar tillbaka ljudet till start efter uppspelning
audioFrame.RewindAudio = true;
// Sparar PowerPoint-filen till disk
pres.Save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
}
Detta C#‑exempel visar hur man lägger till en ny ljudram med inbäddat ljud, beskär den och ställer in toningsvaraktigheterna:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
byte[] audioData = File.ReadAllBytes("sampleaudio.mp3");
IAudio audio = pres.Audios.AddAudio(audioData);
IAudioFrame audioFrame = slide.Shapes.AddAudioFrameEmbedded(50, 50, 100, 100, audio);
// Ställer in beskärningens startoffset till 1,5 sekunder
audioFrame.TrimFromStart = 1500f;
// Ställer in beskärningens slutoffset till 2 sekunder
audioFrame.TrimFromEnd = 2000f;
// Ställer in fade-in-varaktigheten till 200 ms
audioFrame.FadeInDuration = 200f;
// Ställer in fade-out-varaktigheten till 500 ms
audioFrame.FadeOutDuration = 500f;
pres.Save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
}
Följande kodexempel visar hur du hämtar en ljudram med inbäddat ljud och sätter dess volym till 85 %:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Hämtar en ljudram-form
IAudioFrame audioFrame = (IAudioFrame)pres.Slides[0].Shapes[0];
// Ställer in ljudvolymen till 85%
audioFrame.VolumeValue = 85f;
pres.Save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
Hantera ljudundertexter
Aspose.Slides låter dig lägga till stängda undertexter till en ljudram via egenskapen CaptionTracks. Denna egenskap returnerar en ICaptionsCollection, som låter dig lägga till WebVTT‑undertextspår, iterera genom befintliga spår och ta bort dem vid behov.
Lägg till ljudundertexter
Använd egenskapen CaptionTracks 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.
using (Presentation presentation = new Presentation())
{
byte[] audioData = File.ReadAllBytes("audio.mp3");
IAudio audio = presentation.Audios.AddAudio(audioData);
ISlide slide = presentation.Slides[0];
IAudioFrame audioFrame = slide.Shapes.AddAudioFrameEmbedded(10, 10, 50, 50, audio);
// Lägg till ett nytt undertextspår från en WebVTT-fil.
audioFrame.CaptionTracks.Add("New track", "track.vtt");
presentation.Save("audio_with_captions.pptx", SaveFormat.Pptx);
}
Extrahera ljudundertexter
Du kan iterera genom undertextspåren som är kopplade till en ljudram och spara dem som .vtt‑filer. Varje undertextspår exponerar sin binära data och unika identifierare, som kan användas vid export av undertexter.
using (Presentation presentation = new Presentation("audio_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
foreach (IShape shape in slide.Shapes)
{
if (shape is IAudioFrame audioFrame)
{
foreach (ICaptions captionTrack in audioFrame.CaptionTracks)
{
// Spara undertextspåret som en .vtt-fil.
File.WriteAllBytes($"{captionTrack.CaptionId}.vtt", captionTrack.BinaryData);
}
}
}
}
Ta bort ljudundertexter
För att ta bort undertexter från en ljudram, använd metoderna som tillhandahålls av ICaptionsCollection, såsom Clear, Remove, eller RemoveAt. Följande exempel tar bort alla undertextspår från en ljudram.
using (Presentation presentation = new Presentation("audio_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
IAudioFrame audioFrame = slide.Shapes[0] as IAudioFrame;
// Ta bort alla undertextspår från ljudramen.
audioFrame.CaptionTracks.Clear();
presentation.Save("audio_without_captions.pptx", SaveFormat.Pptx);
}
Extrahera ljud
Aspose.Slides för .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 klassen Presentation och läs in presentationen som innehåller ljudet.
- Hämta den aktuella bildens referens via dess index.
- Åtkomst till bildspelsövergångarna för bilden.
- Extrahera ljudet som byte‑data.
Den här C#‑koden visar hur du extraherar ljudet som används i en bild:
string presName = "AudioSlide.pptx";
// Skapar en Presentation-klass som representerar en presentationsfil
Presentation pres = new Presentation(presName);
// Åtkomst till bilden
ISlide slide = pres.Slides[0];
// Hämtar bildspelsövergångseffekterna för bilden
ISlideShowTransition transition = slide.SlideShowTransition;
//Extraherar ljudet i en byte-array
byte[] audio = transition.Sound.BinaryData;
System.Console.WriteLine("Length: " + audio.Length);
FAQ
Kan jag återanvända samma ljudresurs i 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 presentationens storlek 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 objektet embedded audio 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 bara uppspelningsgränserna. De ursprungliga ljudbytena förblir orörda och är åtkomliga via det inbäddade ljudet eller presentationens ljudsamling.