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.

AudioEffectCapture

Успадковує: AudioEffect < Resource < RefCounted < Object

Виводить аудіофрагменти з аудіошини в режимі реального часу, щоб до них можна було отримати доступ як до даних.

Опис

Копіює всі аудіокадри, також відомі як «семпли» або «аудіосемпли», з підключеної аудіошини у свій внутрішній кільцевий буфер. Цей ефект не змінює аудіо. Може використовуватися для зберігання аудіоданих у реальному часі з метою подальшого відтворення, а також для створення аудіовізуалізацій у реальному часі, наприклад, у вигляді осцилограми.

Код програми повинен отримувати ці аудіокадри з цього кільцевого буфера за допомогою get_buffer() і обробляти їх за потреби, наприклад, для зчитування даних з AudioStreamMicrophone, реалізації ефектів, визначених програмою, або для передачі аудіо через мережу. Під час зчитування аудіоданих з мікрофона формат семплів буде стерео 32-бітним PCM з плаваючою комою.

На відміну від AudioEffectRecord, цей ефект повертає лише необроблені аудіовибірки, замість того, щоб кодувати їх у AudioStream.

Посібники

Властивості

float

buffer_length

0.1

Методи

bool

can_get_buffer(frames: int) const

void

clear_buffer()

PackedVector2Array

get_buffer(frames: int)

int

get_buffer_length_frames() const

int

get_discarded_frames() const

int

get_frames_available() const

int

get_pushed_frames() const


Описи властивостей

float buffer_length = 0.1 🔗

  • void set_buffer_length(value: float)

  • float get_buffer_length()

Довжина внутрішнього кільцевого буфера, у секундах. Більші значення дозволяють зберігати дані довше, але вимагають більше пам’яті. Значення може бути в діапазоні від 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 🔗

Повертає кількість семплів, вставлених із аудіошини.