Свойства звуковой волны
Вы можете получить весь PCM буфер из звуковой волны напрямую.
- Blueprint
- C++
// Assuming ImportedSoundWave is a UE reference to a UImportedSoundWave object
TArray<float> PCMBuffer = ImportedSoundWave->GetPCMBufferCopy();
Чтобы создать бесшовный аудиоцикл, вы можете установить зацикливание, чтобы автоматически перемотать время воспроизведения звуковой волны на ноль и воспроизвести после окончания воспроизведения.
- 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);
Если вам нужно изменить частоту дискретизации или количество каналов в импортированной звуковой волне, вы можете использовать соответствующие функции для перезаписи и микширования аудиоданных. Это изменит всю информацию о звуковой волне и повлияет на вывод от делегатов OnGeneratePCMData
и OnPopulateAudioData
соответственно.
- 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);