Gestisci i frame audio nelle presentazioni in .NET
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 durate di dissolvenza, ed estrarre l’audio utilizzato nelle transizioni della presentazione.
Crea frame audio
Aspose.Slides per .NET consente di aggiungere file audio alle diapositive. I file audio vengono incorporati nelle diapositive come frame audio.
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento di 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 C# mostra come aggiungere un frame audio incorporato a una diapositiva:
// Crea un'istanza della classe Presentation che rappresenta un file di presentazione
using (Presentation pres = new Presentation())
{
// Ottiene la prima diapositiva
ISlide sld = pres.Slides[0];
// Carica il file audio wav nello stream
FileStream fstr = new FileStream("sampleaudio.wav", FileMode.Open, FileAccess.Read);
// Aggiunge il frame audio
IAudioFrame audioFrame = sld.Shapes.AddAudioFrameEmbedded(50, 150, 100, 100, fstr);
// Imposta la modalità di riproduzione e il volume dell'audio
audioFrame.PlayMode = AudioPlayModePreset.Auto;
audioFrame.Volume = AudioVolumeMode.Loud;
// Scrive il file PowerPoint su disco
pres.Save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
}
Modifica la 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 C# mostra come modificare la miniatura o l’immagine di anteprima di un frame audio:
using (var presentation = new Presentation())
{
var slide = presentation.Slides[0];
// Aggiunge un frame audio alla diapositiva con una posizione e dimensione specificate.
var audioStream = new FileStream("sample2.mp3", FileMode.Open, FileAccess.Read);
var audioFrame = slide.Shapes.AddAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.Dispose();
// Aggiunge un'immagine alle risorse della presentazione.
var imageStream = File.OpenRead("eagle.jpeg");
var audioImage = presentation.Images.AddImage(imageStream);
imageStream.Dispose();
// Imposta l'immagine per il frame audio.
audioFrame.PictureFormat.Picture.Image = audioImage; // <-----
// Salva la presentazione modificata su disco
presentation.Save("example_out.pptx", SaveFormat.Pptx);
}
Modifica le opzioni di riproduzione audio
Aspose.Slides per .NET consente di modificare le opzioni che controllano la riproduzione o le proprietà di un audio. Ad esempio, è possibile regolare il volume dell’audio, impostare l’audio per la riproduzione in loop o anche nascondere l’icona dell’audio.
Il riquadro Audio Options in Microsoft PowerPoint:

Le Audio Options di PowerPoint corrispondono alle proprietà di Aspose.Slides AudioFrame:
- Start il menu a discesa corrisponde alla proprietà AudioFrame.PlayMode
- Volume corrisponde alla proprietà AudioFrame.Volume
- Play Across Slides corrisponde alla proprietà AudioFrame.PlayAcrossSlides
- Loop until Stopped corrisponde alla proprietà AudioFrame.PlayLoopMode
- Hide During Show corrisponde alla proprietà AudioFrame.HideAtShowing
- Rewind after Playing corrisponde alla proprietà AudioFrame.RewindAudio
Le opzioni Editing di PowerPoint corrispondono alle proprietà di Aspose.Slides AudioFrame:
- Fade In corrisponde alla proprietà AudioFrame.FadeInDuration
- Fade Out corrisponde alla proprietà AudioFrame.FadeOutDuration
- Trim Audio Start Time corrisponde alla proprietà AudioFrame.TrimFromStart
- Trim Audio End Time il valore è uguale alla durata dell’audio meno il valore della proprietà AudioFrame.TrimFromEnd
Il controllo Volume sul pannello di controllo audio di PowerPoint corrisponde alla proprietà AudioFrame.VolumeValue. Permette 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 C# dimostra un’operazione in cui le opzioni di un audio vengono regolate:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Ottiene la forma AudioFrame
AudioFrame audioFrame = (AudioFrame)pres.Slides[0].Shapes[0];
// Imposta la modalità di riproduzione su click
audioFrame.PlayMode = AudioPlayModePreset.OnClick;
// Imposta il volume su Basso
audioFrame.Volume = AudioVolumeMode.Low;
// Imposta l'audio per la riproduzione su tutte le diapositive
audioFrame.PlayAcrossSlides = true;
// Disabilita il loop per l'audio
audioFrame.PlayLoopMode = false;
// Nasconde il AudioFrame durante la presentazione
audioFrame.HideAtShowing = true;
// Riavvolge l'audio all'inizio dopo la riproduzione
audioFrame.RewindAudio = true;
// Salva il file PowerPoint su disco
pres.Save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
}
Questo esempio C# mostra come aggiungere un nuovo frame audio con audio incorporato, ritagliarlo e impostare le durate di dissolvenza:
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);
// Imposta l'offset di inizio del ritaglio a 1,5 secondi
audioFrame.TrimFromStart = 1500f;
// Imposta l'offset di fine del ritaglio a 2 secondi
audioFrame.TrimFromEnd = 2000f;
// Imposta la durata della dissolvenza in ingresso a 200 ms
audioFrame.FadeInDuration = 200f;
// Imposta la durata della dissolvenza in uscita a 500 ms
audioFrame.FadeOutDuration = 500f;
pres.Save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
}
Il seguente esempio di codice mostra come recuperare un frame audio con audio incorporato e impostare il suo volume al 85%:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Ottiene una forma di frame audio
IAudioFrame audioFrame = (IAudioFrame)pres.Slides[0].Shapes[0];
// Imposta il volume dell'audio all'85%
audioFrame.VolumeValue = 85f;
pres.Save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
Gestisci i sottotitoli audio
Aspose.Slides consente di aggiungere didascalie chiuse a un frame audio tramite la proprietà CaptionTracks. Questa proprietà restituisce un ICaptionsCollection, che consente di aggiungere tracce di sottotitoli WebVTT, iterare le tracce esistenti e rimuoverle quando necessario.
Aggiungi sottotitoli audio
Utilizza la proprietà CaptionTracks per allegare una o più tracce di sottotitoli a un frame audio. Nell’esempio seguente, un file audio viene aggiunto a una diapositiva, quindi viene caricata una nuova traccia di sottotitoli da un file .vtt.
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);
// Aggiunge una nuova traccia di didascalie da un file WebVTT.
audioFrame.CaptionTracks.Add("New track", "track.vtt");
presentation.Save("audio_with_captions.pptx", SaveFormat.Pptx);
}
Estrai i sottotitoli audio
Puoi iterare le tracce di sottotitoli associate a un frame audio e salvarle come file .vtt. Ogni traccia di sottotitoli espone i suoi dati binari e l’identificatore univoco, che può essere utilizzato durante l’esportazione dei sottotitoli.
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)
{
// Salva la traccia di sottotitoli come file .vtt.
File.WriteAllBytes($"{captionTrack.CaptionId}.vtt", captionTrack.BinaryData);
}
}
}
}
Rimuovi i sottotitoli audio
Per rimuovere i sottotitoli da un frame audio, utilizza i metodi forniti da ICaptionsCollection, come Clear, Remove, o RemoveAt. L’esempio seguente rimuove tutte le tracce di sottotitoli da un frame audio.
using (Presentation presentation = new Presentation("audio_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
IAudioFrame audioFrame = slide.Shapes[0] as IAudioFrame;
// Rimuove tutte le tracce di sottotitoli dal frame audio.
audioFrame.CaptionTracks.Clear();
presentation.Save("audio_without_captions.pptx", SaveFormat.Pptx);
}
Estrai audio
Aspose.Slides per .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 contenente l’audio.
- Ottieni il riferimento della diapositiva pertinente tramite il suo indice.
- Accedi alle transizioni della presentazione per la diapositiva.
- Estrai il suono in dati byte.
Questo codice C# mostra come estrarre l’audio utilizzato in una diapositiva:
string presName = "AudioSlide.pptx";
// Crea un'istanza della classe Presentation che rappresenta un file di presentazione
Presentation pres = new Presentation(presName);
// Accesses the slide
ISlide slide = pres.Slides[0];
// Gets the slideshow transition effects for the slide
ISlideShowTransition transition = slide.SlideShowTransition;
//Extracts the sound in byte array
byte[] audio = transition.Sound.BinaryData;
System.Console.WriteLine("Length: " + audio.Length);
FAQ
Posso riutilizzare lo stesso asset audio su più diapositive senza aumentare le dimensioni del file?
Sì. Aggiungi l’audio una sola volta alla audio collection condivisa della presentazione e crea ulteriori frame audio 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 della audio collection della presentazione. La formattazione del frame e la maggior parte delle impostazioni di riproduzione rimangono inalterate.
Il ritaglio modifica i dati audio sottostanti archiviati 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.