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

Захватываемая звуковая волна

Обзор

Захватываемая звуковая волна (Capturable Sound Wave) наследуется от потоковой звуковой волны. Она поддерживает захват аудиоданных с входных устройств, таких как микрофон, и их воспроизведение с теми же возможностями, что и у импортированной звуковой волны (включая перемотку, использование в SoundCues и т.д.). Вы даже можете одновременно захватывать и воспроизводить аудио без каких-либо ограничений.

подсказка

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

примечание

Захватываемая звуковая волна автоматически запрашивает разрешения на использование микрофона на iOS и Android при начале захвата.

Базовое использование

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

Сначала необходимо создать захватываемую звуковую волну.

Нода Create Capturable Sound Wave

warning

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

Получение доступных входных устройств

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

Get Available Audio Input Devices node

Запуск и остановка захвата

После получения доступных устройств вы можете начать захват аудиоданных с входного устройства и остановить его при необходимости.

Start and Stop capture nodes

к сведению

DeviceId - это индекс устройства в массиве доступных устройств, полученный на предыдущем шаге.

Расширенные возможности

Включение и отключение захвата звука

Вы можете включать или отключать захват звука, чтобы предотвратить накопление аудиоданных без прерывания процесса захвата.

Toggle Mute nodes

Оптимизация производительности

Это полезно при частом переключении захвата, поскольку запуск записи через StartCapture может вызывать небольшие задержки на стороне движка. Сначала следует начать сам захват, и только затем отключать/включать звук.

Если ваша цель — устранить небольшую задержку, можно рассмотреть запуск захвата в момент, когда эта задержка будет незначительной. Например, можно начать захват во время экрана загрузки игры, отключить записываемую звуковую волну сразу после этого, а затем включить её, когда потребуется захват аудиоданных без задержек.

Полный пример

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

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