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.
Checking the stable version of the documentation...
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à
|
||
|
||
|
||
|
Metodi
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à
Numero di bus audio disponibili.
String input_device = "Default" 🔗
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" 🔗
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 🔗
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.
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.
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.)