Zarządzanie dźwiękiem w prezentacjach na Androidzie
Przegląd
Ten artykuł wyjaśnia, jak pracować z klatkami audio w Aspose.Slides. Pokazuje, jak dodać osadzony dźwięk do slajdów, dostosować miniaturę klatki audio, skonfigurować opcje odtwarzania takie jak głośność, pętla, ukrywanie, przycinanie i czasy zanikania oraz wyodrębnić dźwięk używany w przejściach pokazu slajdów.
Tworzenie klatek audio
Aspose.Slides for Android via Java umożliwia dodawanie plików audio do slajdów. Pliki audio są osadzane w slajdach jako klatki audio.
- Utwórz instancję klasy Presentation.
- Uzyskaj odniesienie do slajdu za pomocą jego indeksu.
- Wczytaj strumień pliku audio, który chcesz osadzić w slajdzie.
- Dodaj osadzoną klatkę audio (zawierającą plik audio) do slajdu.
- Ustaw PlayMode oraz
Volumeudostępnione przez obiekt IAudioFrame. - Zapisz zmodyfikowaną prezentację.
Ten kod Java pokazuje, jak dodać osadzoną klatkę audio do slajdu:
// Instancjonuje klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation();
try {
// Pobiera pierwszy slajd
ISlide sld = pres.getSlides().get_Item(0);
// Ładuje plik dźwiękowy wav do strumienia
FileInputStream fstr = new FileInputStream(new File("audio.wav"));
// Dodaje klatkę audio
IAudioFrame audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Ustawia tryb odtwarzania i głośność dźwięku
audioFrame.setPlayMode(AudioPlayModePreset.Auto);
audioFrame.setVolume(AudioVolumeMode.Loud);
// Zapisuje plik PowerPoint na dysku
pres.save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Zmiana miniatury klatki audio
Po dodaniu pliku audio do prezentacji audio wyświetlane jest jako klatka ze standardowym domyślnym obrazem (zobacz obraz w poniższej sekcji). Możesz zmienić podgląd klatki audio (ustawić własny obraz).
Ten kod Java pokazuje, jak zmienić miniaturę lub obraz podglądu klatki audio:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Dodaje klatkę audio do slajdu z określonym położeniem i rozmiarem.
FileInputStream audioStream = new FileInputStream("sample2.mp3");
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Dodaje obraz do zasobów prezentacji.
IPPImage picture;
IImage image = Images.fromFile("eagle.jpeg");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
// Ustawia obraz dla klatki audio.
audioFrame.getPictureFormat().getPicture().setImage(picture); // <-----
//Zapisuje zmodyfikowaną prezentację na dysk
presentation.save("example_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Zmiana opcji odtwarzania audio
Aspose.Slides for Android via Java umożliwia zmianę opcji kontrolujących odtwarzanie lub właściwości audio. Na przykład możesz dostosować głośność, ustawić odtwarzanie w pętli lub nawet ukryć ikonę audio.
Panel Opcje audio w Microsoft PowerPoint:

Opcje Audio w PowerPoint odpowiadają właściwościom Aspose.Slides AudioFrame:
- Start – lista rozwijana 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 Edycja 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 czasie trwania audio pomniejszonemu o wartość AudioFrame.TrimFromEnd
Suwak Volume w panelu kontrolnym audio w PowerPoint odpowiada właściwości AudioFrame.VolumeValue. Umożliwia zmianę głośności audio w procentach.
Tak zmieniasz opcje odtwarzania audio:
- Utwórz (Create) lub pobierz klatkę audio.
- Ustaw nowe wartości właściwości klatki audio, które chcesz zmienić.
- Zapisz zmodyfikowany plik PowerPoint.
Ten kod Java demonstruje operację, w której zmieniane są opcje audio:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
// Pobiera kształt AudioFrame
AudioFrame audioFrame = (AudioFrame)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Ustawia tryb odtwarzania na odtwarzanie po kliknięciu
audioFrame.setPlayMode(AudioPlayModePreset.OnClick);
// Ustawia głośność na niski poziom
audioFrame.setVolume(AudioVolumeMode.Low);
// Ustawia odtwarzanie audio na wszystkie slajdy
audioFrame.setPlayAcrossSlides(true);
// Wyłącza pętlę dla audio
audioFrame.setPlayLoopMode(false);
// Ukrywa AudioFrame podczas pokazu slajdów
audioFrame.setHideAtShowing(true);
// Cofa audio do początku po odtworzeniu
audioFrame.setRewindAudio(true);
// Zapisuje plik PowerPoint na dysku
pres.save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Ten przykład Java pokazuje, jak dodać nową klatkę audio z osadzonym dźwiękiem, przyciąć go i ustawić czasy zanikania:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
FileInputStream audioData = new FileInputStream("sampleaudio.mp3");
IAudio audio = pres.getAudios().addAudio(audioData, LoadingStreamBehavior.KeepLocked);
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(50, 50, 100, 100, audio);
// Ustawia początkowy offset przycinania na 1,5 sekundy
audioFrame.setTrimFromStart(1500f);
// Ustawia końcowy offset przycinania na 2 sekundy
audioFrame.setTrimFromEnd(2000f);
// Ustawia czas trwania płynnego włączenia na 200 ms
audioFrame.setFadeInDuration(200f);
// Ustawia czas trwania płynnego wyłączenia na 500 ms
audioFrame.setFadeOutDuration(500f);
pres.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Poniższy fragment kodu pokazuje, jak pobrać klatkę audio z osadzonym dźwiękiem i ustawić jej głośność na 85 %:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
// Pobiera kształt klatki audio
IAudioFrame audioFrame = (IAudioFrame)slide.getShapes().get_Item(0);
// Ustawia głośność audio na 85%
audioFrame.setVolumeValue(85f);
pres.save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Zarządzanie napisami audio
Aspose.Slides umożliwia dodawanie zamkniętych napisów do klatki audio za pomocą metody getCaptionTracks. Metoda ta zwraca ICaptionsCollection, co pozwala na dodawanie ścieżek napisów WebVTT, iterowanie po istniejących ścieżkach oraz ich usuwanie w razie potrzeby.
Dodawanie napisów audio
Użyj metody getCaptionTracks aby dołączyć jedną lub więcej ścieżek napisów do klatki 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.
Presentation presentation = new Presentation();
try {
byte[] audioData = Files.readAllBytes(Paths.get("audio.mp3"));
IAudio audio = presentation.getAudios().addAudio(audioData);
ISlide slide = presentation.getSlides().get_Item(0);
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(10, 10, 50, 50, audio);
// Dodaj nową ścieżkę napisów z pliku WebVTT.
audioFrame.getCaptionTracks().add("New track", "track.vtt");
presentation.save("audio_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Wyodrębnianie napisów audio
Możesz iterować po ścieżkach napisów powiązanych z klatką audio i zapisywać je jako pliki .vtt. Każda ścieżka udostępnia swoje dane binarne oraz unikalny identyfikator, który może być użyty przy eksportowaniu napisów.
Presentation presentation = new Presentation("audio_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAudioFrame) {
IAudioFrame audioFrame = (IAudioFrame) shape;
for (ICaptions captionTrack : audioFrame.getCaptionTracks()) {
// Zapisz ścieżkę napisów jako plik .vtt.
FileOutputStream fos = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
fos.write(captionTrack.getBinaryData());
fos.close();
}
}
}
} catch (IOException e){
} finally {
presentation.dispose();
}
Usuwanie napisów audio
Aby usunąć napisy z klatki 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 klatki audio.
Presentation presentation = new Presentation("audio_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAudioFrame audioFrame = (IAudioFrame) slide.getShapes().get_Item(0);
// Usuń wszystkie ścieżki napisów z klatki audio.
audioFrame.getCaptionTracks().clear();
presentation.save("audio_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Wyodrębnianie audio
Aspose.Slides for Android via Java 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 określonym slajdzie.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą audio.
- Uzyskaj odniesienie do odpowiedniego slajdu za pomocą jego indeksu.
- Uzyskaj dostęp do slideshow transitions dla tego slajdu.
- Wyodrębnij dźwięk jako tablicę bajtów.
Ten kod w Javie pokazuje, jak wyodrębnić audio używane w slajdzie:
// Tworzy instancję klasy Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("AudioSlide.pptx");
try {
// Uzyskuje dostęp do wybranego slajdu
ISlide slide = pres.getSlides().get_Item(0);
// Pobiera efekty przejścia pokazu slajdów dla slajdu
ISlideShowTransition transition = slide.getSlideShowTransition();
//Wyodrębnia dźwięk do tablicy bajtów
byte[] audio = transition.getSound().getBinaryData();
System.out.println("Length: " + audio.length);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Czy mogę używać tego samego pliku audio w wielu slajdach bez zwiększania rozmiaru pliku?
Tak. Dodaj audio raz do współdzielonej audio collection prezentacji i utwórz dodatkowe klatki audio odwołujące się do istniejącego zasobu. Zapobiega to duplikacji danych multimedialnych i utrzymuje rozmiar prezentacji pod kontrolą.
Czy mogę wymienić dźwięk w istniejącej klatce audio bez ponownego tworzenia kształtu?
Tak. W przypadku dźwięku linkowanego zaktualizuj link path tak, aby wskazywał na nowy plik. W przypadku dźwięku osadzonego wymień obiekt embedded audio na inny z audio collection prezentacji. Formatowanie klatki i większość ustawień odtwarzania pozostają niezmienione.
Czy przycinanie zmienia podstawowe dane audio zapisane w prezentacji?
Nie. Przycinanie modyfikuje jedynie granice odtwarzania. Oryginalne bajty audio pozostają nietknięte i są dostępne poprzez osadzony dźwięk lub kolekcję audio prezentacji.