Свойства звуковой волны
Доступ к аудиоданным
Получение PCM-буфера
Вы можете получить весь PCM-буфер непосредственно из звуковой волны.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<float> PCMBuffer = ImportedSoundWave->GetPCMBufferCopy();
Если вам нужно преобразовать полученные PCM-данные в байты, см. Float Array to Bytes.
Свойства воспроизведения
Зацикливание
Чтобы создать бесшовный аудио-луп, вы можете установить зацикливание для автоматической перемотки времени воспроизведения звуковой волны на ноль и воспроизведения после окончания проигрывания.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetLooping(false);
Управление громкостью
Вы можете регулировать громкость воспроизводимого звука в соответствии с вашими потребностями.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetVolume(1.0f);
Настройка высоты тона
Вы можете изменить высоту тона воспроизводимого звука по своему усмотрению.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetPitch(1.0f);
Дополнительные возможности
Субтитры
Вы можете устанавливать субтитры, а именно, определять текст и время, в которое они должны отображаться.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<FEditableSubtitleCue> Subtitles;
FEditableSubtitleCue Subtitle;
Subtitle.Text = FText::FromString("Example");
Subtitle.Time = 2.0f;
Subtitles.Add(Subtitle);
ImportedSoundWave->SetSubtitles(Subtitles);
Режим виртуализации
Вы можете установить режим виртуализации, например, Play When Silent, который позволяет звуковой волне продолжать воспроизведение даже во время тишины.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetVirtualizationMode(EVirtualizationMode::PlayWhenSilent);
Это особенно полезно, если вы используете затухание звука для управления тем, как аудио затухает с расстоянием.
Амбифония (Ambisonics)
Вы можете пометить звуковую волну как источник Амбифонии для 3D пространственного кодирования аудио. Аудиодвижок поддерживает только Амбифонию первого порядка (FOA), для которой требуется ровно 4 канала.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetIsAmbisonics(true);
Модификации аудиоформата
Ручное изменение частоты дискретизации и микширование каналов
Если вам нужно изменить частоту дискретизации или количество каналов в импортированной звуковой волне, вы можете использовать соответствующие функции для изменения частоты дискретизации и микширования аудиоданных.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->ResampleSoundWave(44100);
ImportedSoundWave->MixSoundWaveChannels(2);
Это изменит все данные звуковой волны и повлияет на вывод делегатов OnGeneratePCMData и OnPopulateAudioData соответствующим образом.
Автоматическое преобразование формата
Вы можете автоматически передискретизировать и смикшировать все последующие аудиоданные, которые будут заполнены, до указанной желаемой частоты дискретизации и количества каналов.
- Blueprint
- C++

// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
ImportedSoundWave->SetInitialDesiredSampleRate(44100);
ImportedSoundWave->SetInitialDesiredNumOfChannels(2);
Это также соответствующим образом повлияет на вывод делегатов OnGeneratePCMData и OnPopulateAudioData.