Перейти к основному содержимому

Потоковая звуковая волна

Для обнаружения голосовой активности (VAD) обратитесь к этой странице.

Потоковая звуковая волна — это тип импортированной звуковой волны, который поддерживает динамическое добавление аудиоданных даже во время воспроизведения. Она предоставляет ту же функциональность, что и импортированная звуковая волна, например, перемотку назад, и может использоваться в SoundCues и т.д.

Создание потоковой звуковой волны

Сначала вам следует создать потоковую звуковую волну. Обратите внимание, что вы должны рассматривать ее как сильную ссылку, чтобы предотвратить преждевременное уничтожение (например, присвоив ее отдельной переменной в Blueprints или используя UPROPERTY() в C++).

Нода создания потоковой звуковой волны

Воспроизведение звуковой волны

Затем вы можете воспроизвести эту звуковую волну. Однако это не обязательно делать сразу, вы можете начать воспроизведение звуковой волны позже.

Различные примеры воспроизведения звуковой волны

Предварительное выделение аудиоданных

Опционально, вы можете предварительно выделить аудиоданные (байты), чтобы избежать перераспределения всего буфера PCM каждый раз, когда добавляются новые аудиоданные.

Нода предварительного выделения аудиоданных

Добавление аудиоданных

Чтобы добавить аудиоданные в конец существующего буфера, используйте соответствующие функции для динамического добавления аудиоданных. Воспроизведение будет следовать последовательности в очереди этих добавлений.

Нода добавления аудиоданных

Избегание ускоренного воспроизведения аудио

Часто, когда необходимо передавать аудиоданные и воспроизводить их одновременно, следует добавить небольшую задержку перед воспроизведением, чтобы избежать ускоренного звучания из-за слишком быстрого наполнения буфера. Обычно рекомендуется задержка около полсекунды.

Пример использования

В итоге, ваша реализация может выглядеть следующим образом:

Пример использования потоковой звуковой волны