Zarządzanie ramkami audio w prezentacjach w .NET
Przegląd
Ten artykuł wyjaśnia, jak pracować z ramkami audio w Aspose.Slides. Pokazuje, jak dodać osadzony dźwięk do slajdów, dostosować miniaturę ramki audio, skonfigurować opcje odtwarzania, takie jak głośność, pętla, ukrywanie, przycinanie i czas trwania zanikania, oraz wyodrębnić dźwięk używany w przejściach pokazu slajdów.
Utwórz ramki audio
Aspose.Slides for .NET umożliwia dodawanie plików audio do slajdów. Pliki audio są osadzane w slajdach jako ramki audio.
- Utwórz instancję klasy Presentation.
- Uzyskaj referencję do slajdu za pomocą jego indeksu.
- Wczytaj strumień pliku audio, który chcesz osadzić w slajdzie.
- Dodaj osadzoną ramkę audio (zawierającą plik audio) do slajdu.
- Ustaw PlayMode oraz
Volumeudostępniane przez obiekt IAudioFrame. - Zapisz zmodyfikowaną prezentację.
Ten kod C# pokazuje, jak dodać osadzoną ramkę audio do slajdu:
// Tworzy instancję klasy prezentacji reprezentującej plik prezentacji
using (Presentation pres = new Presentation())
{
// Pobiera pierwszy slajd
ISlide sld = pres.Slides[0];
// Wczytuje plik dźwiękowy wav do strumienia
FileStream fstr = new FileStream("sampleaudio.wav", FileMode.Open, FileAccess.Read);
// Dodaje ramkę audio
IAudioFrame audioFrame = sld.Shapes.AddAudioFrameEmbedded(50, 150, 100, 100, fstr);
// Ustawia tryb odtwarzania i głośność audio
audioFrame.PlayMode = AudioPlayModePreset.Auto;
audioFrame.Volume = AudioVolumeMode.Loud;
// Zapisuje plik PowerPoint na dysku
pres.Save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
}
Zmień miniaturę ramki audio
Kiedy dodajesz plik audio do prezentacji, audio pojawia się jako ramka z domyślnym standardowym obrazem (zobacz obraz w sekcji poniżej). Możesz zmienić miniaturę ramki audio (ustawić wybrany obraz).
Ten kod C# pokazuje, jak zmienić miniaturę lub obraz podglądu ramki audio:
using (var presentation = new Presentation())
{
var slide = presentation.Slides[0];
// Dodaje ramkę audio do slajdu z określoną pozycją i rozmiarem.
var audioStream = new FileStream("sample2.mp3", FileMode.Open, FileAccess.Read);
var audioFrame = slide.Shapes.AddAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.Dispose();
// Dodaje obraz do zasobów prezentacji.
var imageStream = File.OpenRead("eagle.jpeg");
var audioImage = presentation.Images.AddImage(imageStream);
imageStream.Dispose();
// Ustawia obraz dla ramki audio.
audioFrame.PictureFormat.Picture.Image = audioImage; // <-----
//Zapisuje zmodyfikowaną prezentację na dysku
presentation.Save("example_out.pptx", SaveFormat.Pptx);
}
Zmień opcje odtwarzania audio
Aspose.Slides for .NET umożliwia zmianę opcji kontrolujących odtwarzanie lub właściwości audio. Na przykład możesz dostosować głośność audio, ustawić odtwarzanie w pętli lub nawet ukryć ikonę audio.
Panel Audio Options w Microsoft PowerPoint:

Opcje Audio w PowerPoint odpowiadają właściwościom Aspose.Slides AudioFrame:
- Start menu rozwijane odpowiada właściwości AudioFrame.PlayMode
- Volume odpowiada właściwości AudioFrame.Volume
- Play Across Slides odpowiada właściwości AudioFrame.PlayAcrossSlides
- Loop until Stopped odpowiada właściwości AudioFrame.PlayLoopMode
- Hide During Show odpowiada właściwości AudioFrame.HideAtShowing
- Rewind after Playing odpowiada właściwości AudioFrame.RewindAudio
Opcje Editing w PowerPoint odpowiadają właściwościom Aspose.Slides AudioFrame:
- Fade In odpowiada właściwości AudioFrame.FadeInDuration
- Fade Out odpowiada właściwości AudioFrame.FadeOutDuration
- Trim Audio Start Time odpowiada właściwości AudioFrame.TrimFromStart
- Trim Audio End Time wartość równa jest długości audio minus wartość właściwości AudioFrame.TrimFromEnd
Kontrola Volume w PowerPoint na panelu sterowania audio odpowiada właściwości AudioFrame.VolumeValue. Pozwala zmienić głośność audio w procentach.
Tak zmieniasz opcje odtwarzania audio:
- Utwórz lub pobierz ramkę audio.
- Ustaw nowe wartości dla właściwości ramki audio, które chcesz zmienić.
- Zapisz zmodyfikowany plik PowerPoint.
Ten kod C# demonstruje operację, w której dostosowywane są opcje audio:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Pobiera kształt AudioFrame
AudioFrame audioFrame = (AudioFrame)pres.Slides[0].Shapes[0];
// Ustawia tryb odtwarzania na odtwarzanie po kliknięciu
audioFrame.PlayMode = AudioPlayModePreset.OnClick;
// Ustawia głośność na niski poziom
audioFrame.Volume = AudioVolumeMode.Low;
// Ustawia odtwarzanie audio na wszystkie slajdy
audioFrame.PlayAcrossSlides = true;
// Wyłącza pętlę dla audio
audioFrame.PlayLoopMode = false;
// Ukrywa AudioFrame podczas pokazu slajdów
audioFrame.HideAtShowing = true;
// Przewija audio do początku po odtworzeniu
audioFrame.RewindAudio = true;
// Zapisuje plik PowerPoint na dysku
pres.Save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
}
Ten przykład C# pokazuje, jak dodać nową ramkę audio z osadzonym dźwiękiem, przyciąć ją i ustawić czasy zanikania:
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);
// Ustawia początkowy offset przycinania na 1,5 sekundy
audioFrame.TrimFromStart = 1500f;
// Ustawia końcowy offset przycinania na 2 sekundy
audioFrame.TrimFromEnd = 2000f;
// Ustawia czas trwania płynnego wejścia na 200 ms
audioFrame.FadeInDuration = 200f;
// Ustawia czas trwania płynnego wyjścia na 500 ms
audioFrame.FadeOutDuration = 500f;
pres.Save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
}
Poniższy fragment kodu pokazuje, jak pobrać ramkę audio z osadzonym dźwiękiem i ustawić jej głośność na 85%:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Pobiera kształt AudioFrame
IAudioFrame audioFrame = (IAudioFrame)pres.Slides[0].Shapes[0];
// Ustawia głośność audio na 85%
audioFrame.VolumeValue = 85f;
pres.Save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
Zarządzaj napisami audio
Aspose.Slides umożliwia dodawanie zamkniętych napisów do ramki audio za pomocą właściwości CaptionTracks. Właściwość ta zwraca ICaptionsCollection, co pozwala dodawać ścieżki napisów WebVTT, iterować po istniejących ścieżkach oraz usuwać je w razie potrzeby.
Dodaj napisy audio
Użyj właściwości CaptionTracks, aby dołączyć jedną lub więcej ścieżek napisów do ramki audio. W poniższym przykładzie plik audio jest dodawany do slajdu, a następnie nowa ścieżka napisów jest wczytywana z pliku .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);
// Dodaj nową ścieżkę napisów z pliku WebVTT.
audioFrame.CaptionTracks.Add("New track", "track.vtt");
presentation.Save("audio_with_captions.pptx", SaveFormat.Pptx);
}
Wyodrębnij napisy audio
Możesz iterować po ścieżkach napisów powiązanych z ramką audio i zapisywać je jako pliki .vtt. Każda ścieżka napisów udostępnia swoje dane binarne oraz unikalny identyfikator, które mogą być użyte przy eksportowaniu napisów.
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)
{
// Zapisz ścieżkę napisów jako plik .vtt.
File.WriteAllBytes($"{captionTrack.CaptionId}.vtt", captionTrack.BinaryData);
}
}
}
}
Usuń napisy audio
Aby usunąć napisy z ramki audio, użyj metod udostępnionych przez ICaptionsCollection, takich jak Clear, Remove, lub RemoveAt. Poniższy przykład usuwa wszystkie ścieżki napisów z ramki audio.
using (Presentation presentation = new Presentation("audio_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
IAudioFrame audioFrame = slide.Shapes[0] as IAudioFrame;
// Usuń wszystkie ścieżki napisów z ramki audio.
audioFrame.CaptionTracks.Clear();
presentation.Save("audio_without_captions.pptx", SaveFormat.Pptx);
}
Wyodrębnij audio
Aspose.Slides for .NET umożliwia wyodrębnienie dźwięku używanego w przejściach pokazu slajdów. Na przykład możesz wyodrębnić dźwięk używany w konkretnym slajdzie.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą audio.
- Uzyskaj referencję do odpowiedniego slajdu za pomocą jego indeksu.
- Uzyskaj dostęp do przejść pokazu slajdów dla tego slajdu.
- Wyodrębnij dźwięk jako dane bajtowe.
Ten kod C# pokazuje, jak wyodrębnić audio użyte w slajdzie:
string presName = "AudioSlide.pptx";
// Tworzy instancję klasy Presentation reprezentującej plik prezentacji
Presentation pres = new Presentation(presName);
// Uzyskuje dostęp do slajdu
ISlide slide = pres.Slides[0];
// Pobiera efekty przejścia pokazu slajdów dla slajdu
ISlideShowTransition transition = slide.SlideShowTransition;
//Ekstrahuje dźwięk w tablicy bajtów
byte[] audio = transition.Sound.BinaryData;
System.Console.WriteLine("Length: " + audio.Length);
FAQ
Czy mogę ponownie używać tego samego zasobu audio na wielu slajdach bez zwiększania rozmiaru pliku?
Tak. Dodaj audio raz do współdzielonej audio collection prezentacji i utwórz dodatkowe ramki audio, które odwołują się do istniejącego zasobu. To zapobiega duplikowaniu danych multimedialnych i utrzymuje rozmiar prezentacji pod kontrolą.
Czy mogę zastąpić dźwięk w istniejącej ramce audio bez ponownego tworzenia kształtu?
Tak. W przypadku dźwięku powiązanego, zaktualizuj link path, aby wskazywał na nowy plik. W przypadku dźwięku osadzonego, zamień obiekt embedded audio na inny z audio collection prezentacji. Formatowanie ramki i większość ustawień odtwarzania pozostają niezmienione.
Czy przycinanie zmienia podstawowe dane audio przechowywane w prezentacji?
Nie. Przycinanie zmienia jedynie granice odtwarzania. Oryginalne bajty audio pozostają nienaruszone i dostępne poprzez osadzony dźwięk lub kolekcję audio prezentacji.