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.

AudioServer

Hérite de : Object

Interface de serveur pour l'accès audio de bas niveau.

Description

AudioServer est une interface bas-niveau du serveur pour l'accès audio. Il est chargé de créer des données échantillonnées (audio jouable) mais aussi la lecture par une interface orale.

Tutoriels

Propriétés

int

bus_count

1

String

input_device

"Default"

String

output_device

"Default"

float

playback_speed_scale

1.0

Méthodes

void

add_bus(at_position: int = -1)

void

add_bus_effect(bus_idx: int, effect: AudioEffect, at_position: int = -1)

AudioBusLayout

generate_bus_layout() const

int

get_bus_channels(bus_idx: int) const

AudioEffect

get_bus_effect(bus_idx: int, effect_idx: int)

int

get_bus_effect_count(bus_idx: int)

AudioEffectInstance

get_bus_effect_instance(bus_idx: int, effect_idx: int, channel: int = 0)

int

get_bus_index(bus_name: StringName) const

String

get_bus_name(bus_idx: int) const

float

get_bus_peak_volume_left_db(bus_idx: int, channel: int) const

float

get_bus_peak_volume_right_db(bus_idx: int, channel: int) const

StringName

get_bus_send(bus_idx: int) const

float

get_bus_volume_db(bus_idx: int) const

float

get_bus_volume_linear(bus_idx: int) const

String

get_driver_name() const

int

get_input_buffer_length_frames()

PackedStringArray

get_input_device_list()

PackedVector2Array

get_input_frames(frames: int)

int

get_input_frames_available()

float

get_input_mix_rate() const

float

get_mix_rate() const

PackedStringArray

get_output_device_list()

float

get_output_latency() const

SpeakerMode

get_speaker_mode() const

float

get_time_since_last_mix() const

float

get_time_to_next_mix() const

bool

is_bus_bypassing_effects(bus_idx: int) const

bool

is_bus_effect_enabled(bus_idx: int, effect_idx: int) const

bool

is_bus_mute(bus_idx: int) const

bool

is_bus_solo(bus_idx: int) const

bool

is_stream_registered_as_sample(stream: AudioStream)

void

lock()

void

move_bus(index: int, to_index: int)

void

register_stream_as_sample(stream: AudioStream)

void

remove_bus(index: int)

void

remove_bus_effect(bus_idx: int, effect_idx: int)

void

set_bus_bypass_effects(bus_idx: int, enable: bool)

void

set_bus_effect_enabled(bus_idx: int, effect_idx: int, enabled: bool)

void

set_bus_layout(bus_layout: AudioBusLayout)

void

set_bus_mute(bus_idx: int, enable: bool)

void

set_bus_name(bus_idx: int, name: String)

void

set_bus_send(bus_idx: int, send: StringName)

void

set_bus_solo(bus_idx: int, enable: bool)

void

set_bus_volume_db(bus_idx: int, volume_db: float)

void

set_bus_volume_linear(bus_idx: int, volume_linear: float)

void

set_enable_tagging_used_audio_streams(enable: bool)

Error

set_input_device_active(active: bool)

void

swap_bus_effects(bus_idx: int, effect_idx: int, by_effect_idx: int)

void

unlock()


Signaux

bus_layout_changed() 🔗

Émis lorsqu'un bus audio est ajouté, supprimé ou déplacé.


bus_renamed(bus_index: int, old_name: StringName, new_name: StringName) 🔗

Émis lorsque le bus audio à l'index bus_index est renommé de old_name à new_name.


Énumérations

enum SpeakerMode: 🔗

SpeakerMode SPEAKER_MODE_STEREO = 0

Deux enceintes ou moins sont détectées.

SpeakerMode SPEAKER_SURROUND_31 = 1

Une configuration surround 3.1 a été détecté.

SpeakerMode SPEAKER_SURROUND_51 = 2

Une configuration surround 5.1 a été détecté.

SpeakerMode SPEAKER_SURROUND_71 = 3

Une configuration surround 7.1 a été détecté.


enum PlaybackType: 🔗

PlaybackType PLAYBACK_TYPE_DEFAULT = 0

Expérimental : Cette constante peut être changée ou retirée dans de futures versions.

La lecture sera considérée du type déclaré dans ProjectSettings.audio/general/default_playback_type.

PlaybackType PLAYBACK_TYPE_STREAM = 1

Expérimental : Cette constante peut être changée ou retirée dans de futures versions.

Forcer la lecture à considérée comme un flux.

PlaybackType PLAYBACK_TYPE_SAMPLE = 2

Expérimental : Cette constante peut être changée ou retirée dans de futures versions.

Forcer la lecture à être considérée comme un échantillon. Cela peut fournir une latence plus faible et une lecture plus stable (avec moins de risque de craquements audio), au coût d'avoir moins de flexibilité.

Note : Actuellement seulement supporté sur la plateforme web.

Note : Les AudioEffects ne sont pas pris en charge lorsque la lecture est considérée comme un échantillon.

PlaybackType PLAYBACK_TYPE_MAX = 3

Expérimental : Cette constante peut être changée ou retirée dans de futures versions.

Représente la taille de l'énumération PlaybackType.


Descriptions des propriétés

int bus_count = 1 🔗

  • void set_bus_count(value: int)

  • int get_bus_count()

Nombre de bus audio disponibles.


String input_device = "Default" 🔗

  • void set_input_device(value: String)

  • String get_input_device()

Le nom du périphérique actuel pour l'entrée audio (voir get_input_device_list()). Sur les systèmes avec plusieurs entrées audio (comme l'audio analogique, USB et HDMI), ceci peut être utilisé pour sélectionner le périphérique d'entrée audio. La valeur "Default" enregistrera l'audio sur l'entrée audio par défaut du système. Si un nom de périphérique invalide est défini, la valeur sera remise sur "Default".

Note : ProjectSettings.audio/driver/enable_input doit valoir true pour que l'entrée audio fonctionne. Voir aussi la description de ce paramètre pour les avertissements liés aux autorisations et aux paramètres de confidentialité du système d'exploitation.


String output_device = "Default" 🔗

  • void set_output_device(value: String)

  • String get_output_device()

Le nom du périphérique actuel pour la sortie audio (voir get_output_device_list()). Sur les systèmes avec plusieurs sorties audio (tels que l'audio analogique, USB et HDMI), cela peut être utilisé pour sélectionner le périphérique de sortie de l'audio. La valeur "Default" jouera l'audio sur la sortie audio par défaut au niveau du système. Si un nom de périphérique invalide est défini, la valeur sera remise sur "Default".


float playback_speed_scale = 1.0 🔗

  • void set_playback_speed_scale(value: float)

  • float get_playback_speed_scale()

Redimensionne le taux auquel l'audio est joué (c.-à-d. le définir à 0.5 fera que l'audio soit joué à la moitié de sa vitesse). Voir aussi Engine.time_scale pour affecter la vitesse de simulation générale, qui est indépendante de playback_speed_scale.


Descriptions des méthodes

void add_bus(at_position: int = -1) 🔗

Ajoute un bus à la position at_position.


void add_bus_effect(bus_idx: int, effect: AudioEffect, at_position: int = -1) 🔗

Ajoute un effet AudioEffect au bus bus_idx à la position at_position.


AudioBusLayout generate_bus_layout() const 🔗

Génère un AudioBusLayout en utilisant les bus et effets disponibles.


int get_bus_channels(bus_idx: int) const 🔗

Renvoie le nombre de canaux du bus à l'index bus_idx.


AudioEffect get_bus_effect(bus_idx: int, effect_idx: int) 🔗

Renvoie l'AudioEffect en position effect_idx dans le bus bus_idx.


int get_bus_effect_count(bus_idx: int) 🔗

Renvoie le nombre d'effets pour le bus bus_idx.


AudioEffectInstance get_bus_effect_instance(bus_idx: int, effect_idx: int, channel: int = 0) 🔗

Renvoie l'AudioEffectInstance assignée au bus et aux indices de l'effet donnés (et le canal en option).


int get_bus_index(bus_name: StringName) const 🔗

Renvoie l'index du bus avec le nom bus_name. Renvoie -1 si aucun bus avec le nom spécifié n'existe.


String get_bus_name(bus_idx: int) const 🔗

Renvoie le nom du bus avec l'index bus_idx.


float get_bus_peak_volume_left_db(bus_idx: int, channel: int) const 🔗

Renvoie le pic de volume du haut-parleur gauche à l'index de bus bus_idx et l'index de canal channel.


float get_bus_peak_volume_right_db(bus_idx: int, channel: int) const 🔗

Renvoie le pic de volume du haut-parleur droit à l'index de bus bus_idx et l'index de canal channel.


StringName get_bus_send(bus_idx: int) const 🔗

Renvoie le nom du bus vers lequel le bus à l'index bus_idx envoie l'audio.


float get_bus_volume_db(bus_idx: int) const 🔗

Renvoie le volume du bus à l'index bus_idx en dB.


float get_bus_volume_linear(bus_idx: int) const 🔗

Renvoie le volume du bus à l'index bus_idx en tant que valeur linéaire.

Note : La valeur renvoyée est équivalente au résultat de @GlobalScope.db_to_linear() sur le résultat de get_bus_volume_db().


String get_driver_name() const 🔗

Renvoie le nom du pilote audio actuel. La valeur par défaut dépend généralement du système d'exploitation, mais peut être remplacée par l'argument de ligne de commande --audio-driver. --headless définit aussi automatiquement le pilote audio à Dummy. Voir aussi ProjectSettings.audio/driver/driver.


int get_input_buffer_length_frames() 🔗

Expérimental : Cette méthode peut être changée ou retirée dans de futures versions.

Renvoie la taille absolue du tampon d'entrée du microphone. Il s'agit d'un multiple de la latence audio et peut être utilisé pour estimer le taux minimum auquel les trames doivent être récupérées.


PackedStringArray get_input_device_list() 🔗

Renvoie les noms de tous les périphériques d'entrée audio détectés sur le système.

**Note : ** ProjectSettings.audio/driver/enable_input doit valoir true pour que l'entrée audio marche. Voir aussi la description du paramètre pour les avertissements liées aux autorisations et aux paramètres de confidentialité du système d'exploitation.


PackedVector2Array get_input_frames(frames: int) 🔗

Expérimental : Cette méthode peut être changée ou retirée dans de futures versions.

Renvoie un PackedVector2Array contenant exactement frames d'échantillons audio du buffer du microphone interne si disponible, sinon renvoie un PackedVector2Array vide.

Le buffer est rempli au taux de get_input_mix_rate() images par seconde lorsque set_input_device_active() a été définie avec succès à true.

Les échantillons sont des valeurs PCM flottantes entre -1 et 1.


int get_input_frames_available() 🔗

Expérimental : Cette méthode peut être changée ou retirée dans de futures versions.

Renvoie le nombre de trames disponibles à la lecture en utilisant get_input_frames().


float get_input_mix_rate() const 🔗

Renvoie la fréquence d'échantillonnage de l'entrée de l'AudioServer.


float get_mix_rate() const 🔗

Renvoie le débit de sortie du AudioServer.


PackedStringArray get_output_device_list() 🔗

Renvoie les noms de tous les appareils de sortie audio détectés sur le système.


float get_output_latency() const 🔗

Renvoie la latence de sortie effective du pilote audio. Ceci est basé sur ProjectSettings.audio/driver/output_latency, mais la valeur de retour exacte diffère selon le système d'exploitation et le pilote audio.

Note : Cela peut être coûteux, il n'est pas recommandé d'appeler get_output_latency() à chaque trame.


SpeakerMode get_speaker_mode() const 🔗

Renvoie la configuration du haut-parleur.


float get_time_since_last_mix() const 🔗

Returns the relative time since the last mix occurred, in seconds.


float get_time_to_next_mix() const 🔗

Returns the relative time until the next mix occurs, in seconds.


bool is_bus_bypassing_effects(bus_idx: int) const 🔗

Si true, le bus à l'index bus_idx ignore les effets.


bool is_bus_effect_enabled(bus_idx: int, effect_idx: int) const 🔗

Si true, l'effet à l'index effect_idx sur le bus à l'index bus_idx est activé.


bool is_bus_mute(bus_idx: int) const 🔗

Si true, le bus à la position bus_idx est muet.


bool is_bus_solo(bus_idx: int) const 🔗

Si true, le bus à l'index bus_idx est en mode solo.


bool is_stream_registered_as_sample(stream: AudioStream) 🔗

Expérimental : Cette méthode peut être changée ou retirée dans de futures versions.

Si true, le flux est enregistré en tant qu'échantillon. Le moteur n'aura pas à l'enregistrer avant de jouer l'échantillon.

Si false, le flux devra être enregistré avant de le jouer. Pour éviter les pics de lag, enregistrez le flux comme échantillon avec register_stream_as_sample().


void lock() 🔗

Verrouille la boucle principale du pilote audio.

Note : Il est important de la déverrouiller après utilisation.


void move_bus(index: int, to_index: int) 🔗

Déplace le bus de la position index à to_index.


void register_stream_as_sample(stream: AudioStream) 🔗

Expérimental : Cette méthode peut être changée ou retirée dans de futures versions.

Force l'enregistrement d'un flux en tant qu'échantillon.

Note : Des pics de lag peuvent survenir lors de l'appel de cette méthode, en particulier sur les compilation en single-thread. Il est suggéré d'appeler cette méthode pendant le chargement des ressources, où le pic de lag pourrait être masqué, au lieu d'enregistrer l'échantillon juste avant qu'il ne soit joué.


void remove_bus(index: int) 🔗

Retire le bus à l'index index.


void remove_bus_effect(bus_idx: int, effect_idx: int) 🔗

Retire l'effet à l'index effect_idx du bus à l'index bus_idx.


void set_bus_bypass_effects(bus_idx: int, enable: bool) 🔗

Si true, le bus à l'index bus_idx ignore les effets.


void set_bus_effect_enabled(bus_idx: int, effect_idx: int, enabled: bool) 🔗

Si true, l'effet à l'index effect_idx sur le bus à l'index bus_idx est activé.


void set_bus_layout(bus_layout: AudioBusLayout) 🔗

Remplace le AudioBusLayout actuellement utilisé.


void set_bus_mute(bus_idx: int, enable: bool) 🔗

Si true, le bus à la position bus_idx est muet.


void set_bus_name(bus_idx: int, name: String) 🔗

Définit le nom du bus à l'index bus_idx en name.


void set_bus_send(bus_idx: int, send: StringName) 🔗

Connecte la sortie du bus à l'index bus_idx au bus nommé send.


void set_bus_solo(bus_idx: int, enable: bool) 🔗

Si true, le bus à l'index bus_idx est en mode solo.


void set_bus_volume_db(bus_idx: int, volume_db: float) 🔗

Définit le volume du bus à l'index bus_idx à volume_db.


void set_bus_volume_linear(bus_idx: int, volume_linear: float) 🔗

Définit le volume en tant que valeur linéaire du bus d'index bus_idx à volume_linear.

Note : L'utilisation de cette méthode équivaut à appeler set_bus_volume_db() avec le résultat de @GlobalScope.linear_to_db() sur une valeur.


void set_enable_tagging_used_audio_streams(enable: bool) 🔗

S'il est défini à true, toutes les instances de AudioStreamPlayback appelleront AudioStreamPlayback._tag_used_streams() à chaque étape de mixage.

Note : Ceci est activé par défaut dans l'éditeur, car il est utilisé par les plugins d'éditeur pour les prévisualisations des flux audio.


Error set_input_device_active(active: bool) 🔗

Expérimental : Cette méthode peut être changée ou retirée dans de futures versions.

Si active vaut true, démarre le flux d'entrée du microphone spécifié par input_device ou renvoie une erreur s'il a échoué.

Si active vaut false, arrête le flux d'entrée s'il est en cours d'exécution.


void swap_bus_effects(bus_idx: int, effect_idx: int, by_effect_idx: int) 🔗

Échange la position de deux effets dans le bus d'index bus_idx.


void unlock() 🔗

Déverrouille la boucle principale du pilote audio. (Après le verrouillage, vous devriez toujours le déverrouiller.)