Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
AudioEffectCapture
Наследует: AudioEffect < Resource < RefCounted < Object
Предоставляет доступ к аудиосэмплам с аудиошины в режиме реального времени, позволяя использовать их как данные.
Описание
Копирует все аудиокадры, также известные как «сэмплы» или «аудиосэмплы», из подключенной аудиошины во внутренний кольцевой буфер. Этот эффект не изменяет звук. Может использоваться для хранения аудиоданных в реальном времени для воспроизведения и для создания визуализаций звука в реальном времени, например, осциллографа.
Код приложения должен получать эти аудиокадры из этого кольцевого буфера с помощью get_buffer() и обрабатывать их по мере необходимости, например, для захвата данных из AudioStreamMicrophone, реализации эффектов, определяемых приложением, или для передачи звука по сети. При захвате аудиоданных с микрофона формат сэмплов будет стереофоническим 32-битным PCM с плавающей запятой.
В отличие от AudioEffectRecord, этот эффект возвращает только необработанные аудиосэмплы, а не кодирует их в AudioStream.
Обучающие материалы
Свойства
|
Методы
can_get_buffer(frames: int) const |
|
void |
|
get_buffer(frames: int) |
|
get_buffer_length_frames() const |
|
get_discarded_frames() const |
|
get_frames_available() const |
|
get_pushed_frames() const |
Описания свойств
Длина внутреннего кольцевого буфера в секундах. Большие значения позволяют хранить данные дольше, но требуют больше памяти. Значение может варьироваться от 0,01 до 10.
Примечание: Установка длины буфера не окажет никакого эффекта, если он уже инициализирован.
Описания метода
bool can_get_buffer(frames: int) const 🔗
Возвращает true, если во внутреннем кольцевом буфере доступно для чтения не менее frames сэмплов.
void clear_buffer() 🔗
Очищает внутренний кольцевой буфер.
Примечание: Вызов этого во время захвата может привести к потере сэмплов, что приведет к хлопкам при воспроизведении.
PackedVector2Array get_buffer(frames: int) 🔗
Получает следующие frames сэмплов из внутреннего кольцевого буфера.
Возвращает PackedVector2Array, содержащий ровно frames сэмплов, если они доступны, или пустой PackedVector2Array, если данных недостаточно.
Отсчеты представляют собой знаковые PCM с плавающей запятой в диапазоне от -1 до 1. Вам потребуется масштабировать их, если вы хотите использовать их как 8- или 16-битные целочисленные отсчеты. (v = 0x7fff * samples[0].x)
int get_buffer_length_frames() const 🔗
Возвращает общий размер внутреннего кольцевого буфера в сэмплах.
int get_discarded_frames() const 🔗
Возвращает количество сэмплов, отброшенных с аудиошины из-за переполнения буфера.
int get_frames_available() const 🔗
Возвращает количество сэмплов, доступных для чтения с помощью метода get_buffer().
int get_pushed_frames() const 🔗
Возвращает количество сэмплов, записанных с аудиошины.