Управление аудио в презентациях на Android
Создание аудио‑кадров
Aspose.Slides for Android via Java позволяет добавлять аудиофайлы на слайды. Аудиофайлы встраиваются в слайды в виде аудио‑кадров.
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Загрузите поток аудиофайла, который вы хотите встроить в слайд.
- Добавьте встроенный аудио‑кадр (содержащий аудиофайл) на слайд.
- Установите PlayMode и
Volume, предоставляемые объектом IAudioFrame. - Сохраните изменённую презентацию.
Этот пример кода на Java показывает, как добавить встроенный аудио‑кадр на слайд:
// Создает экземпляр класса Presentation, представляющего файл презентации
Presentation pres = new Presentation();
try {
// Получает первый слайд
ISlide sld = pres.getSlides().get_Item(0);
// Загружает wav звуковой файл в поток
FileInputStream fstr = new FileInputStream(new File("audio.wav"));
// Добавляет аудио‑кадр
IAudioFrame audioFrame = sld.getShapes().addAudioFrameEmbedded(50, 150, 100, 100, fstr);
fstr.close();
// Устанавливает режим воспроизведения и громкость аудио
audioFrame.setPlayMode(AudioPlayModePreset.Auto);
audioFrame.setVolume(AudioVolumeMode.Loud);
// Записывает файл PowerPoint на диск
pres.save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Изменение миниатюры аудио‑кадра
Когда вы добавляете аудиофайл в презентацию, он отображается как кадр со стандартным изображением по умолчанию (см. изображение в разделе ниже). Вы можете изменить изображение предварительного просмотра аудио‑кадра (установить желаемое изображение).
Этот пример кода на Java показывает, как изменить миниатюру или изображение предварительного просмотра аудио‑кадра:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Добавляет аудио‑кадр на слайд с указанными позицией и размером.
FileInputStream audioStream = new FileInputStream("sample2.mp3");
IAudioFrame audioFrame = slide.getShapes().addAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.close();
// Добавляет изображение в ресурсы презентации.
IPPImage picture;
IImage image = Images.fromFile("eagle.jpeg");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
// Устанавливает изображение для аудио‑кадра.
audioFrame.getPictureFormat().getPicture().setImage(picture); // <-----
//Сохраняет изменённую презентацию на диск
presentation.save("example_out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Изменение параметров воспроизведения аудио
Aspose.Slides for Android via Java позволяет изменять параметры, контролирующие воспроизведение или свойства аудио. Например, можно регулировать громкость аудио, установить воспроизведение в цикле или даже скрыть значок аудио.
The Audio Options pane in Microsoft PowerPoint:

PowerPoint Audio Options that correspond to Aspose.Slides AudioFrame properties:
- Start выпадающий список соответствует свойству AudioFrame.PlayMode property
- Volume соответствует свойству AudioFrame.Volume property
- Play Across Slides соответствует свойству AudioFrame.PlayAcrossSlides property
- Loop until Stopped соответствует свойству AudioFrame.PlayLoopMode property
- Hide During Show соответствует свойству AudioFrame.HideAtShowing property
- Rewind after Playing соответствует свойству AudioFrame.RewindAudio property
PowerPoint Editing options that correspond to Aspose.Slides AudioFrame properties:
- Fade In соответствует свойству AudioFrame.FadeInDuration property
- Fade Out соответствует свойству AudioFrame.FadeOutDuration property
- Trim Audio Start Time соответствует свойству AudioFrame.TrimFromStart property
- Trim Audio End Time равно продолжительности аудио за вычетом значения свойства AudioFrame.TrimFromEnd property
The PowerPoint Volume controll on the audio control panel corresponds to the AudioFrame.VolumeValue property. It lets you change the audio volume as a percentage.
Вот как изменить параметры воспроизведения аудио:
- Создать или получить Audio Frame.
- Установите новые значения для свойств Audio Frame, которые хотите изменить.
- Сохраните изменённый файл PowerPoint.
Этот пример кода на Java демонстрирует операцию, в которой изменяются параметры аудио:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
// Получает форму AudioFrame
AudioFrame audioFrame = (AudioFrame)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Устанавливает режим воспроизведения на воспроизведение по клику
audioFrame.setPlayMode(AudioPlayModePreset.OnClick);
// Устанавливает громкость на низкую
audioFrame.setVolume(AudioVolumeMode.Low);
// Устанавливает воспроизведение аудио на всех слайдах
audioFrame.setPlayAcrossSlides(true);
// Отключает зацикливание аудио
audioFrame.setPlayLoopMode(false);
// Скрывает AudioFrame во время показа слайдов
audioFrame.setHideAtShowing(true);
// Перематывает аудио к началу после воспроизведения
audioFrame.setRewindAudio(true);
// Сохраняет файл PowerPoint на диск
pres.save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Этот пример кода на Java показывает, как добавить новый аудио‑кадр со встроенным аудио, обрезать его и установить длительности затухания:
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);
// Устанавливает начальное смещение обрезки в 1,5 секунды
// Устанавливает конечное смещение обрезки в 2 секунды
// Устанавливает длительность появления (fade-in) 200 мс
// Устанавливает длительность исчезновения (fade-out) 500 мс
pres.save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Следующий пример кода показывает, как получить аудио‑кадр со встроенным аудио и установить его громкость на 85%:
Presentation pres = new Presentation("AudioFrameEmbed_out.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
// Получает форму audio frame
IAudioFrame audioFrame = (IAudioFrame)slide.getShapes().get_Item(0);
// Устанавливает громкость аудио на 85%
audioFrame.setVolumeValue(85f);
pres.save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
finally {
pres.dispose();
}
Извлечение аудио
Aspose.Slides for Android via Java позволяет извлекать звук, используемый в переходах слайд‑шоу. Например, можно извлечь звук, использованный в конкретном слайде.
- Создайте экземпляр класса Presentation и загрузите презентацию, содержащую аудио.
- Получите ссылку на нужный слайд по его индексу.
- Получите доступ к slideshow transitions для слайда.
- Извлеките звук в виде байтовых данных.
Этот пример кода на Java показывает, как извлечь аудио, использованное в слайде:
// Создаёт объект класса Presentation, представляющего файл презентации
Presentation pres = new Presentation("AudioSlide.pptx");
try {
// Получает нужный слайд
ISlide slide = pres.getSlides().get_Item(0);
// Получает эффекты перехода слайд-шоу для слайда
ISlideShowTransition transition = slide.getSlideShowTransition();
//Извлекает звук в массив байтов
byte[] audio = transition.getSound().getBinaryData();
System.out.println("Length: " + audio.length);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Могу ли я использовать один и тот же аудио‑ресурс на нескольких слайдах без увеличения размера файла?
Да. Добавьте аудио один раз в общую audio collection презентации и создайте дополнительные аудио‑кадры, которые ссылаются на этот существующий ресурс. Это исключает дублирование медиа‑данных и позволяет контролировать размер презентации.
Могу ли я заменить звук в существующем аудио‑кадре без воссоздания формы?
Да. Для связанного звука обновите link path так, чтобы он указывал на новый файл. Для встроенного звука замените объект embedded audio другим из audio collection презентации. Форматирование кадра и большинство настроек воспроизведения останутся без изменений.
Изменяет ли обрезка исходные аудио‑данные, хранящиеся в презентации?
Нет. Обрезка изменяет только границы воспроизведения. Исходные байты аудио остаются нетронутыми и доступны через встроенное аудио или [audio collection] презентации.