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
void |
|
void |
add_bus_effect(bus_idx: int, effect: AudioEffect, at_position: int = -1) |
generate_bus_layout() const |
|
get_bus_channels(bus_idx: int) const |
|
get_bus_effect(bus_idx: int, effect_idx: int) |
|
get_bus_effect_count(bus_idx: int) |
|
get_bus_effect_instance(bus_idx: int, effect_idx: int, channel: int = 0) |
|
get_bus_index(bus_name: StringName) const |
|
get_bus_name(bus_idx: int) const |
|
get_bus_peak_volume_left_db(bus_idx: int, channel: int) const |
|
get_bus_peak_volume_right_db(bus_idx: int, channel: int) const |
|
get_bus_send(bus_idx: int) const |
|
get_bus_volume_db(bus_idx: int) const |
|
get_bus_volume_linear(bus_idx: int) const |
|
get_driver_name() const |
|
get_input_mix_rate() const |
|
get_mix_rate() const |
|
get_output_latency() const |
|
get_speaker_mode() const |
|
get_time_since_last_mix() const |
|
get_time_to_next_mix() const |
|
is_bus_bypassing_effects(bus_idx: int) const |
|
is_bus_effect_enabled(bus_idx: int, effect_idx: int) const |
|
is_bus_mute(bus_idx: int) const |
|
is_bus_solo(bus_idx: int) const |
|
void |
lock() |
void |
|
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 |
|
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à
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.
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.
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 🔗
Restituisce il tempo relativo trascorso dall'ultimo mixaggio.
float get_time_to_next_mix() const 🔗
Restituisce il tempo relativo fino al verificarsi del mixaggio successivo.
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.
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.)