Управление аудио‑кадрами в презентациях в .NET
Создать аудио‑кадры
Aspose.Slides for .NET позволяет добавлять аудиофайлы на слайды. Аудиофайлы встраиваются в слайды как аудио‑кадры.
- Создайте экземпляр класса Presentation .
- Получите ссылку на слайд по его индексу.
- Загрузите поток аудиофайла, который нужно встроить в слайд.
- Добавьте встроенный аудио‑кадр (содержащий аудиофайл) на слайд.
- Установите свойства PlayMode и
Volume, доступные через объект IAudioFrame. - Сохраните изменённую презентацию.
Этот C#‑код демонстрирует, как добавить встроенный аудио‑кадр на слайд:
// Создаёт экземпляр класса презентации, представляющего файл презентации
using (Presentation pres = new Presentation())
{
// Получает первый слайд
ISlide sld = pres.Slides[0];
// Загружает wav‑файл звука в поток
FileStream fstr = new FileStream("sampleaudio.wav", FileMode.Open, FileAccess.Read);
// Добавляет аудио‑кадр
IAudioFrame audioFrame = sld.Shapes.AddAudioFrameEmbedded(50, 150, 100, 100, fstr);
// Устанавливает режим воспроизведения и громкость аудио
audioFrame.PlayMode = AudioPlayModePreset.Auto;
audioFrame.Volume = AudioVolumeMode.Loud;
// Сохраняет файл PowerPoint на диск
pres.Save("AudioFrameEmbed_out.pptx", SaveFormat.Pptx);
}
Изменить миниатюру аудио‑кадра
При добавлении аудиофайла в презентацию он отображается как кадр со стандартным изображением по умолчанию (см. изображение ниже). Вы можете изменить миниатюру аудио‑кадра (установить своё изображение).
Этот C#‑код показывает, как изменить миниатюру или предварительный просмотр аудио‑кадра:
using (var presentation = new Presentation())
{
var slide = presentation.Slides[0];
// Добавляет аудио‑кадр на слайд с указанными позицией и размером.
var audioStream = new FileStream("sample2.mp3", FileMode.Open, FileAccess.Read);
var audioFrame = slide.Shapes.AddAudioFrameEmbedded(150, 100, 50, 50, audioStream);
audioStream.Dispose();
// Добавляет изображение в ресурсы презентации.
var imageStream = File.OpenRead("eagle.jpeg");
var audioImage = presentation.Images.AddImage(imageStream);
imageStream.Dispose();
// Устанавливает изображение для аудио‑кадра.
audioFrame.PictureFormat.Picture.Image = audioImage; // <-----
//Saves the modified presentation to disk
presentation.Save("example_out.pptx", SaveFormat.Pptx);
}
Изменить параметры воспроизведения аудио
Aspose.Slides for .NET позволяет менять параметры, управляющие воспроизведением аудио или его свойствами. Например, можно отрегулировать громкость, воспроизводить аудио в цикле или скрыть значок аудио.
Область Audio Options в Microsoft PowerPoint:

Параметры PowerPoint Audio Options, соответствующие свойствам Aspose.Slides AudioFrame:
- Выпадающий список Start соответствует свойству AudioFrame.PlayMode
- Volume соответствует свойству AudioFrame.Volume
- Play Across Slides соответствует свойству AudioFrame.PlayAcrossSlides
- Loop until Stopped соответствует свойству AudioFrame.PlayLoopMode
- Hide During Show соответствует свойству AudioFrame.HideAtShowing
- Rewind after Playing соответствует свойству AudioFrame.RewindAudio
Параметры PowerPoint Editing, соответствующие свойствам Aspose.Slides AudioFrame:
- Fade In соответствует свойству AudioFrame.FadeInDuration
- Fade Out соответствует свойству AudioFrame.FadeOutDuration
- Trim Audio Start Time соответствует свойству AudioFrame.TrimFromStart
- Trim Audio End Time равен длительности аудио минус значение свойства AudioFrame.TrimFromEnd
Ползунок Volume на панели управления аудио в PowerPoint соответствует свойству AudioFrame.VolumeValue . Он позволяет менять громкость аудио в процентах.
Как изменить параметры воспроизведения аудио:
- Create или получите аудио‑кадр.
- Установите новые значения нужных вам свойств аудио‑кадра.
- Сохраните изменённый файл PowerPoint.
Этот C#‑код демонстрирует операцию, в которой изменяются параметры аудио:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Получает форму AudioFrame
AudioFrame audioFrame = (AudioFrame)pres.Slides[0].Shapes[0];
// Устанавливает режим воспроизведения на воспроизведение по щелчку
audioFrame.PlayMode = AudioPlayModePreset.OnClick;
// Устанавливает громкость на низкую
audioFrame.Volume = AudioVolumeMode.Low;
// Устанавливает воспроизведение аудио на всех слайдах
audioFrame.PlayAcrossSlides = true;
// Отключает зацикливание аудио
audioFrame.PlayLoopMode = false;
// Скрывает AudioFrame во время показа слайдов
audioFrame.HideAtShowing = true;
// Перематывает аудио к началу после воспроизведения
audioFrame.RewindAudio = true;
// Сохраняет файл PowerPoint на диск
pres.Save("AudioFrameEmbed_changed.pptx", SaveFormat.Pptx);
}
Этот пример на C# показывает, как добавить новый аудио‑кадр со встроенным аудио, обрезать его и задать длительность затухания:
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);
// Устанавливает начальное смещение обрезки в 1.5 секунды
audioFrame.TrimFromStart = 1500f;
// Устанавливает конечное смещение обрезки в 2 секунды
audioFrame.TrimFromEnd = 2000f;
// Устанавливает длительность fade-in в 200 мс
audioFrame.FadeInDuration = 200f;
// Устанавливает длительность fade-out в 500 мс
audioFrame.FadeOutDuration = 500f;
pres.Save("AudioFrameTrimFade_out.pptx", SaveFormat.Pptx);
}
В следующем примере кода показано, как получить аудио‑кадр со встроенным аудио и установить его громкость на 85 %:
using (Presentation pres = new Presentation("AudioFrameEmbed_out.pptx"))
{
// Получает форму AudioFrame
IAudioFrame audioFrame = (IAudioFrame)pres.Slides[0].Shapes[0];
// Устанавливает громкость аудио на 85%
audioFrame.VolumeValue = 85f;
pres.Save("AudioFrameValue_out.pptx", SaveFormat.Pptx);
}
Извлечение аудио
Aspose.Slides for .NET позволяет извлекать звук, используемый в переходах слайд‑шоу. Например, можно извлечь звук, использованный в конкретном слайде.
- Создайте экземпляр класса Presentation и загрузите презентацию, содержащую аудио.
- Получите ссылку на нужный слайд по его индексу.
- Получите переходы слайд‑шоу для этого слайда.
- Извлеките звук в виде байтовых данных.
Этот C#‑код показывает, как извлечь аудио, использованное в слайде:
string presName = "AudioSlide.pptx";
// Создаёт экземпляр класса Presentation, представляющего файл презентации
Presentation pres = new Presentation(presName);
// Получает доступ к слайду
ISlide slide = pres.Slides[0];
// Получает эффекты переходов слайд-шоу для слайда
ISlideShowTransition transition = slide.SlideShowTransition;
//Extracts the sound in byte array
//Извлекает звук в массив байтов
byte[] audio = transition.Sound.BinaryData;
System.Console.WriteLine("Length: " + audio.Length);
FAQ
Можно ли использовать один и тот же аудио‑ресурс на нескольких слайдах, не увеличивая размер файла?
Да. Добавьте аудио один раз в общую audio collection презентации и создайте дополнительные аудио‑кадры, ссылающиеся на существующий ресурс. Это предотвращает дублирование медиа‑данных и позволяет контролировать размер презентации.
Можно ли заменить звук в существующем аудио‑кадре без пересоздания формы?
Да. Для связанного звука обновите link path на новый файл. Для встроенного звука замените объект embedded audio другим из audio collection презентации. Форматирование кадра и большинство настроек воспроизведения останутся без изменений.
Изменяет ли обрезка (trimming) исходные аудио‑данные, хранящиеся в презентации?
Нет. Обрезка изменяет только границы воспроизведения. Исходные аудио‑байты остаются нетронутыми и доступны через встроенное аудио или коллекцию аудио презентации.