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

Eredita: Object

Interfaccia di server per l'accesso ad audio di basso livello.

Descrizione

AudioServer è un'interfaccia di server di basso livello per l'accesso all'audio. È responsabile della creazione di dati campione (audio riproducibile) e della loro riproduzione tramite un'interfaccia vocale.

Tutorial

Proprietà

int

bus_count

1

String

input_device

"Default"

String

output_device

"Default"

float

playback_speed_scale

1.0

Metodi

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()


Segnali

bus_layout_changed() 🔗

Emesso quando un bus audio viene aggiunto, eliminato, o spostato.


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

Emesso quando il bus audio a bus_index viene rinominato da old_name a new_name.


Enumerazioni

enum SpeakerMode: 🔗

SpeakerMode SPEAKER_MODE_STEREO = 0

Sono stati rilevati due o meno speaker.

SpeakerMode SPEAKER_SURROUND_31 = 1

È stato rilevato una configurazione surround a 3.1 canali.

SpeakerMode SPEAKER_SURROUND_51 = 2

È stata rilevata una configurazione surround a 5.1 canali.

SpeakerMode SPEAKER_SURROUND_71 = 3

È stata rilevata una configurazione surround a 7.1 canali.


enum PlaybackType: 🔗

PlaybackType PLAYBACK_TYPE_DEFAULT = 0

Sperimentale: Questa costante potrebbe essere cambiata o rimossa in versioni future.

La riproduzione sarà considerata del tipo dichiarato a ProjectSettings.audio/general/default_playback_type.

PlaybackType PLAYBACK_TYPE_STREAM = 1

Sperimentale: Questa costante potrebbe essere cambiata o rimossa in versioni future.

Costringe la riproduzione a essere considerata come un flusso.

PlaybackType PLAYBACK_TYPE_SAMPLE = 2

Sperimentale: Questa costante potrebbe essere cambiata o rimossa in versioni future.

Costringe la riproduzione a essere considerata come un campione. Questo può fornire latenza inferiore e una riproduzione più stabile (con meno rischio di audio scoppiettante), al costo di avere meno flessibilità.

Nota: Solo attualmente supportato sulla piattaforma web.

Nota: Gli AudioEffect non sono supportati quando la riproduzione è considerata come campione.

PlaybackType PLAYBACK_TYPE_MAX = 3

Sperimentale: Questa costante potrebbe essere cambiata o rimossa in versioni future.

Rappresenta la dimensione dell'enumerazione PlaybackType.


Descrizioni delle proprietà

int bus_count = 1 🔗

  • void set_bus_count(value: int)

  • int get_bus_count()

Numero di bus audio disponibili.


String input_device = "Default" 🔗

  • void set_input_device(value: String)

  • String get_input_device()

Nome del dispositivo attuale per l'ingresso audio (vedi get_input_device_list()). Su sistemi con più ingressi audio (come audio analogico, USB, e HDMI), questo può essere usato per scegliere il dispositivo di ingresso audio. Il valore "Default" registrerà l'audio sull'ingresso audio predefinito a livello di sistema. Se è impostato un nome di dispositivo non valido, il valore sarà reindirizzato a "Default".

Nota: ProjectSettings.audio/driver/enable_input deve essere true affinché l'input di audio funzioni. Vedi anche la descrizione di quella impostazione per avvertenze riguardo le autorizzazioni e le impostazioni sulla privacy del sistema operativo.


String output_device = "Default" 🔗

  • void set_output_device(value: String)

  • String get_output_device()

Nome del dispositivo attuale per l'uscita audio (vedi get_output_device_list()). Su sistemi con uscite audio multiple (come audio analogico, USB, e HDMI), questo può essere usato per scegliere il dispositivo di uscita audio. Il valore "Default" riprodurrà l'audio sull'uscita audio predefinita a livello di sistema. Se è impostato un nome di dispositivo non valido, il valore sarà reindirizzato a "Default".


float playback_speed_scale = 1.0 🔗

  • void set_playback_speed_scale(value: float)

  • float get_playback_speed_scale()

Scale la frequenza in cui l'audio viene riprodotto (ossia impostandolo a 0.5 farà riprodurre l'audio a metà della sua velocità). Vedi anche Engine.time_scale per influenzare la velocità di simulazione generale, che è indipendente da playback_speed_scale.


Descrizioni dei metodi

void add_bus(at_position: int = -1) 🔗

Aggiunge un bus a at_position.


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

Aggiunge un effetto AudioEffect al bus bus_idx a at_position.


AudioBusLayout generate_bus_layout() const 🔗

Genera un AudioBusLayout utilizzando i bus e gli effetti disponibili.


int get_bus_channels(bus_idx: int) const 🔗

Restituisce il numero di canali del bus all'indice bus_idx.


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

Restituisce l'AudioEffect alla posizione effect_idx nel bus bus_idx.


int get_bus_effect_count(bus_idx: int) 🔗

Restituisce il numero di effetti sul bus all'indice bus_idx.


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

Restituisce l'AudioEffectInstance assegnato agli indici del bus e dell'effetto forniti (e facoltativamente il canale).


int get_bus_index(bus_name: StringName) const 🔗

Restituisce l'indice del bus con il nome bus_name. Restituisce -1 se non esiste un bus con il nome specificato.


String get_bus_name(bus_idx: int) const 🔗

Restituisce il nome del bus con l'indice bus_idx.


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

Restituisce il volume di picco dell'altoparlante sinistro del bus all'indice bus_idx e nel canale all'indice channel.


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

Restituisce il volume di picco dell'altoparlante destro del bus all'indice bus_idx e nel canale all'indice channel.


StringName get_bus_send(bus_idx: int) const 🔗

Restituisce il nome del bus al quale il bus all'indice bus_idx trasmette.


float get_bus_volume_db(bus_idx: int) const 🔗

Restituisce il volume del bus all'indice bus_idx in dB.


float get_bus_volume_linear(bus_idx: int) const 🔗

Restituisce il volume del bus all'indice bus_idx come valore lineare.

Nota: Il valore restituito è equivalente al risultato di @GlobalScope.db_to_linear() sul risultato di get_bus_volume_db().


String get_driver_name() const 🔗

Restituisce il nome del driver audio attuale. Il valore predefinito solitamente dipende dal sistema operativo, ma può essere sostituito tramite l'argomento della riga di comando --audio-driver. --headless imposta automaticamente il driver audio su Dummy. Vedi anche ProjectSettings.audio/driver/driver.


int get_input_buffer_length_frames() 🔗

Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.

Returns the absolute size of the microphone input buffer. This is set to a multiple of the audio latency and can be used to estimate the minimum rate at which the frames need to be fetched.


PackedStringArray get_input_device_list() 🔗

Restituisce i nomi di tutti i dispositivi di ingresso audio rilevati sul sistema.

Nota: ProjectSettings.audio/driver/enable_input deve essere true affinché l'input di audio funzioni. Vedi anche la descrizione di quella impostazione per avvertenze riguardo le autorizzazioni e le impostazioni sulla privacy del sistema operativo.


PackedVector2Array get_input_frames(frames: int) 🔗

Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.

Returns a PackedVector2Array containing exactly frames audio samples from the internal microphone buffer if available, otherwise returns an empty PackedVector2Array.

The buffer is filled at the rate of get_input_mix_rate() frames per second when set_input_device_active() has successfully been set to true.

The samples are signed floating-point PCM values between -1 and 1.


int get_input_frames_available() 🔗

Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.

Returns the number of frames available to read using get_input_frames().


float get_input_mix_rate() const 🔗

Restituisce la frequenza di campionamento all'uscita dell'AudioServer.


float get_mix_rate() const 🔗

Restituisce la frequenza di campionamento all'uscita del AudioServer.


PackedStringArray get_output_device_list() 🔗

Restituisce i nomi di tutti i dispositivi di uscita audio rilevati sul sistema.


float get_output_latency() const 🔗

Restituisce la latenza di uscita effettiva del driver audio. Questo si basa su ProjectSettings.audio/driver/output_latency, ma il valore esatto restituito sarà diverso a seconda del sistema operativo e del driver audio.

Nota: Questo può essere costoso; non è consigliato chiamare get_output_latency() ogni frame.


SpeakerMode get_speaker_mode() const 🔗

Restituisce la configurazione degli speaker.


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 🔗

Se true, il bus all'indice bus_idx sta bypassando gli effetti.


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

Se true, l'effetto all'indice effect_idx sul bus all'indice bus_idx è abilitato.


bool is_bus_mute(bus_idx: int) const 🔗

Se true, il bus all'indice bus_idx è muto.


bool is_bus_solo(bus_idx: int) const 🔗

Se true, il bus all'indice bus_idx è in modalità assolo.


bool is_stream_registered_as_sample(stream: AudioStream) 🔗

Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.

Se true, il flusso è registrato come campione. Il motore non lo dovrà registrare prima di riprodurre il campione.

Se false, il flusso dovrà essere registrato prima di essere riprodotto. Per prevenire i picchi di ritardo, registra il flusso come campione con register_stream_as_sample().


void lock() 🔗

Blocca il ciclo principale del driver audio.

Nota: Ricorda di sbloccarlo successivamente.


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

Sposta il bus dall'indice index all'indice to_index.


void register_stream_as_sample(stream: AudioStream) 🔗

Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.

Obbliga la registrazione di un flusso come campione.

Nota: Si possono verificare i picchi di ritardo quando si chiama questo metodo, soprattutto su build a thread singolo. Si suggerisce di chiamare questo metodo durante il caricamento delle risorse, dove il picco di ritardo potrebbe essere mascherato, invece di registrare il campione subito prima che debba essere riprodotto.


void remove_bus(index: int) 🔗

Rimuove il bus all'indice index.


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

Rimuove l'effetto all'indice effect_idx dal bus all'indice bus_idx.


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

Se true, il bus all'indice bus_idx sta bypassando gli effetti.


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

Se true, l'effetto all'indice effect_idx sul bus all'indice bus_idx è abilitato.


void set_bus_layout(bus_layout: AudioBusLayout) 🔗

Sostituisce l'AudioBusLayout attualmente utilizzato.


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

Se true, il bus all'indice bus_idx è muto.


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

Imposta il nome del bus all'indice bus_idx a name.


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

Collega l'uscita del bus all'indice bus_idx al bus con il nome send.


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

Se true, il bus all'indice bus_idx è in modalità assolo.


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

Imposta il volume in decibel del bus all'indice bus_idx su volume_db.


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

Imposta il volume come valore lineare del bus all'indice bus_idx su volume_linear.

Nota: L'utilizzo di questo metodo equivale a chiamare set_bus_volume_db() con il risultato di @GlobalScope.linear_to_db() su un valore.


void set_enable_tagging_used_audio_streams(enable: bool) 🔗

Se impostato su true, tutte le istanze di AudioStreamPlayback chiameranno AudioStreamPlayback._tag_used_streams() ogni passo di mixaggio.

Nota: Questo è abilitato per impostazione predefinita nell'editor, in quanto viene utilizzato dai plugin dell'editor per le anteprime del flusso audio.


Error set_input_device_active(active: bool) 🔗

Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.

If active is true, starts the microphone input stream specified by input_device or returns an error if it failed.

If active is false, stops the input stream if it is running.


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

Scambia la posizione di due effetti nel bus all'indice bus_idx.


void unlock() 🔗

Sblocca il loop principale del driver audio. (Dopo averlo bloccato, dovresti sempre sbloccarlo.)