AudioEffectCapture

Hérite de : AudioEffect < Resource < RefCounted < Object

Capture l'audio depuis un bus audio en temps réel.

Description

AudioEffectCapture est un AudioEffect qui copie toutes les trames audio du bus d'effet audio joint dans son buffer circulaire interne.

Le code d'application devrait consommer ces trames audio du buffer circulaire de l'anneau en utilisant get_buffer() et les traiter au besoin, par exemple pour capturer des données d'un AudioStreamMicrophone, implémenter des effets définis par l'application, ou transmettre de l'audio sur le réseau. Lors de la capture de données audio à partir d'un microphone, le format des échantillons sera en stéréo 32 bits à point flottant PCM.

Contrairement à AudioEffectRecord, cet effet ne renvoie que les échantillons audio bruts au lieu de les encoder dans un AudioStream.

Tutoriels

Propriétés

float

buffer_length

0.1

Méthodes

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


Descriptions des propriétés

float buffer_length = 0.1 🔗

  • void set_buffer_length(value: float)

  • float get_buffer_length()

Longueur du buffer circulaire interne, en secondes. Définir la longueur du buffer n'aura aucun effet s'il est déjà initialisé.


Descriptions des méthodes

bool can_get_buffer(frames: int) const 🔗

Renvoie true si au moins frames trames audio sont disponibles dans le buffer circulaire.


void clear_buffer() 🔗

Efface le buffer circulaire interne.

Note : Appeler ceci lors d'une capture peut causer la perte d'échantillons ce qui provoque du claquement dans la lecture.


PackedVector2Array get_buffer(frames: int) 🔗

Obtient les frames prochaines trames d'échantillonnage audio depuis le buffer circulaire interne.

Renvoie un PackedVector2Array contenant exactement frames échantillons audio si disponible, ou un PackedVector2Array vide s'il n'y a pas assez de données disponibles.

Les échantillons sont des PCM flottants signés entre -1 et 1. Vous devrez les mettre à l'échelle si vous voulez les utilisez comme échantillons d'entiers 8 ou 16 bits. (v = 0x7fff * samples[0].x)


int get_buffer_length_frames() const 🔗

Renvoie la taille totale du buffer circulaire interne en trames.


int get_discarded_frames() const 🔗

Renvoie le nombre de trames audio perdue dans le bus audio parce que son buffer est plein.


int get_frames_available() const 🔗

Renvoie le nombre de trames disponibles à lire en utilisant get_buffer().


int get_pushed_frames() const 🔗

Renvoie le nombre de trames audio insérées depuis le bus audio.