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

Eredita: AudioEffect < Resource < RefCounted < Object

Espone i campioni audio da un bus audio in tempo reale, così da poterli accedere come dati.

Descrizione

Copia tutti i frame audio, noti anche come "campioni" o "campioni audio", dal bus audio associato nel suo buffer circolare interno. Questo effetto non altera l'audio. Si può utilizzare per memorizzare dati audio in tempo reale per la riproduzione e per creare visualizzazioni audio in tempo reale, come un oscilloscopio.

Il codice dell'applicazione dovrebbe prelevare questi frame audio da questo buffer circolare usando get_buffer() ed elaborarli come necessario, ad esempio per catturare i dati da un AudioStreamMicrophone, implementare effetti definiti dall'applicazione o trasmettere audio in rete. Quando si catturano i dati audio da un microfono, il formato dei campioni sarà PCM stereo a virgola mobile a 32 bit.

A differenza di AudioEffectRecord, questo effetto restituisce solo i campioni audio grezzi invece di codificarli in un AudioStream.

Tutorial

Proprietà

float

buffer_length

0.1

Metodi

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


Descrizioni delle proprietà

float buffer_length = 0.1 🔗

  • void set_buffer_length(value: float)

  • float get_buffer_length()

Lunghezza del buffer circolare interno, in secondi. Valori più alti mantengono i dati in memoria più a lungo, ma richiedono più memoria. Il valore può variare da 0.01 a 10.

Note: Impostare la lunghezza del buffer non avrà alcun effetto se già inizializzato.


Descrizioni dei metodi

bool can_get_buffer(frames: int) const 🔗

Restituisce true se almeno frames campioni sono disponibili da leggere nel buffer circolare interno.


void clear_buffer() 🔗

Pulisce il buffer circolare interno.

Nota: Chiamare questo durante una cattura può causare la perdita di campioni che causa scoppiettii nella riproduzione.


PackedVector2Array get_buffer(frames: int) 🔗

Ottiene i prossimi frames campioni dal buffer circolare interno.

Restituisce un PackedVector2Array contenente esattamente frames campioni se disponibili, o un PackedVector2Array vuoto se non erano disponibili abbastanza dati.

I campioni sono valori PCM in virgola mobile con segno tra -1 e 1. Dovrai scalarli se vuoi utilizzarli come campioni interi da 8 o 16 bit. (v = 0x7fff * samples[0].x)


int get_buffer_length_frames() const 🔗

Restituisce la dimensione totale del buffer circolare interno, in numero di campioni.


int get_discarded_frames() const 🔗

Restituisce il numero di campioni scartati dal bus audio a causa della memoria piena del buffer.


int get_frames_available() const 🔗

Restituisce il numero di campioni disponibili da leggere usando get_buffer().


int get_pushed_frames() const 🔗

Restituisce il numero di campioni inseriti dal bus audio.