AudioServer

Hereda: Object

Interfaz de servidor para acceso de audio de bajo nivel.

Descripción

AudioServer es una interfaz de servidor de bajo nivel para el acceso al audio. Se encarga de crear datos de muestra (audio reproducible) así como de su reproducción a través de una interfaz de voz.

Tutoriales

Propiedades

int

bus_count

1

String

input_device

"Default"

String

output_device

"Default"

float

playback_speed_scale

1.0

Métodos

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

PackedStringArray

get_input_device_list()

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)

void

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

void

unlock()


Señales

bus_layout_changed() 🔗

Emitida cuando se agrega, elimina o mueve un bus de audio.


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

Emitida cuando el bus de audio en bus_index cambia de nombre de old_name a new_name.


Enumeraciones

enum SpeakerMode: 🔗

SpeakerMode SPEAKER_MODE_STEREO = 0

Se detectaron dos o menos altavoces.

SpeakerMode SPEAKER_SURROUND_31 = 1

Se detectó una configuración de sonido envolvente de 3.1 canales.

SpeakerMode SPEAKER_SURROUND_51 = 2

Se detectó una configuración de sonido envolvente de 5.1 canales.

SpeakerMode SPEAKER_SURROUND_71 = 3

Se detectó una configuración de sonido envolvente de 7.1 canales.


enum PlaybackType: 🔗

PlaybackType PLAYBACK_TYPE_DEFAULT = 0

Experimental: Esta constante podría ser modificada o eliminada en versiones futuras.

La reproducción se considerará del tipo declarado en ProjectSettings.audio/general/default_playback_type.

PlaybackType PLAYBACK_TYPE_STREAM = 1

Experimental: Esta constante podría ser modificada o eliminada en versiones futuras.

Fuerza a que la reproducción se considere como una transmisión.

PlaybackType PLAYBACK_TYPE_SAMPLE = 2

Experimental: Esta constante podría ser modificada o eliminada en versiones futuras.

Fuerza a que la reproducción se considere una muestra. Esto puede proporcionar una latencia más baja y una reproducción más estable (con menor riesgo de crujidos de audio), a costa de una menor flexibilidad.

Nota: Actualmente solo es compatible con la plataforma web.

Nota: Los efectos de audio no son compatibles cuando la reproducción se considera una muestra.

PlaybackType PLAYBACK_TYPE_MAX = 3

Experimental: Esta constante podría ser modificada o eliminada en versiones futuras.

Representa el tamaño del enum PlaybackType.


Descripciones de Propiedades

int bus_count = 1 🔗

  • void set_bus_count(value: int)

  • int get_bus_count()

Número de buses de audio disponibles.


String input_device = "Default" 🔗

  • void set_input_device(value: String)

  • String get_input_device()

Name of the current device for audio input (see get_input_device_list()). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value "Default" will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to "Default".

Note: ProjectSettings.audio/driver/enable_input must be true for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings.


String output_device = "Default" 🔗

  • void set_output_device(value: String)

  • String get_output_device()

Name of the current device for audio output (see get_output_device_list()). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value "Default" will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to "Default".


float playback_speed_scale = 1.0 🔗

  • void set_playback_speed_scale(value: float)

  • float get_playback_speed_scale()

Scales the rate at which audio is played (i.e. setting it to 0.5 will make the audio be played at half its speed). See also Engine.time_scale to affect the general simulation speed, which is independent from playback_speed_scale.


Descripciones de Métodos

void add_bus(at_position: int = -1) 🔗

Agrega un bus en at_position.


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

Agrega un efecto AudioEffect al bus bus_idx en at_position.


AudioBusLayout generate_bus_layout() const 🔗

Genera un AudioBusLayout usando los buses y efectos disponibles.


int get_bus_channels(bus_idx: int) const 🔗

Devuelve el número de canales del bus en el índice bus_idx.


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

Devuelve el AudioEffect en la posición effect_idx en el bus bus_idx.


int get_bus_effect_count(bus_idx: int) 🔗

Devuelve el número de efectos en el bus en bus_idx.


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

Devuelve la AudioEffectInstance asignada al bus dado y los indices de efecto (y opcionalmente el canal).


int get_bus_index(bus_name: StringName) const 🔗

Devuelve el índice del bus con el nombre bus_name. Devuelve -1 si no existe ningún bus con el nombre especificado.


String get_bus_name(bus_idx: int) const 🔗

Devuelve el nombre del bus con el índice bus_idx.


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

Devuelve el volumen máximo del altavoz izquierdo en el índice de bus bus_idx y el índice de canal channel.


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

Devuelve el volumen máximo del altavoz derecho en el índice de bus bus_idx y el índice de canal channel.


StringName get_bus_send(bus_idx: int) const 🔗

Devuelve el nombre del bus al que envía el bus en el índice bus_idx.


float get_bus_volume_db(bus_idx: int) const 🔗

Devuelve el volumen del bus en el índice bus_idx en dB.


float get_bus_volume_linear(bus_idx: int) const 🔗

Devuelve el volumen del bus en el índice bus_idx como un valor lineal.

Nota: El valor devuelto es equivalente al resultado del método @GlobalScope.db_to_linear sobre el resultado del método get_bus_volume_db.


String get_driver_name() const 🔗

Devuelve el nombre del controlador de audio actual. El valor predeterminado suele depender del sistema operativo, pero puede sobrescribirse mediante el argumento de línea de comandos --audio-driver Tutorial de línea de comandos. --headless también establece automáticamente el controlador de audio como Dummy. Véase también ProjectSettings.audio/driver/driver.


PackedStringArray get_input_device_list() 🔗

Devuelve los nombres de todos los dispositivos de entrada de audio detectados en el sistema.

Nota: El valor de ProjectSettings.audio/driver/enable_input debe ser true para que la entrada de audio funcione. Consulta también la descripción de esta configuración para conocer las advertencias relacionadas con los permisos y la configuración de privacidad del sistema operativo.


float get_input_mix_rate() const 🔗

Devuelve la frecuencia de muestreo en la entrada del AudioServer.


float get_mix_rate() const 🔗

Devuelve la frecuencia de muestreo a la salida del AudioServer.


PackedStringArray get_output_device_list() 🔗

Devuelve los nombres de todos los dispositivos de salida de audio detectados en el sistema.


float get_output_latency() const 🔗

Devuelve la latencia de salida efectiva del controlador de audio. Esto se basa en ProjectSettings.audio/driver/output_latency, pero el valor exacto devuelto varía según el sistema operativo y el controlador de audio.

Nota: Esto puede ser costoso; no se recomienda llamar al método get_output_latency() en cada fotograma.


SpeakerMode get_speaker_mode() const 🔗

Devuelve la configuración de los altavoces.


float get_time_since_last_mix() const 🔗

Devuelve el tiempo relativo desde que se produjo la última mezcla.


float get_time_to_next_mix() const 🔗

Devuelve el tiempo relativo hasta que se produce la siguiente mezcla.


bool is_bus_bypassing_effects(bus_idx: int) const 🔗

Si es true, el bus en el índice bus_idx está omitiendo los efectos.


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

Si es true, se habilita el efecto en el índice effect_idx en el bus en el índice bus_idx.


bool is_bus_mute(bus_idx: int) const 🔗

Si es true, el bus en el índice bus_idx se silencia.


bool is_bus_solo(bus_idx: int) const 🔗

Si es true, el bus en el índice bus_idx está en modo solo.


bool is_stream_registered_as_sample(stream: AudioStream) 🔗

Experimental: Este método podría ser modificado o eliminado en versiones futuras.

Si es true, la transmisión se registra como muestra. El motor no tendrá que registrarla antes de reproducirla.

Si es false, la transmisión deberá registrarse antes de reproducirla. Para evitar picos de retardo, registra la transmisión como muestra con register_stream_as_sample().


void lock() 🔗

Bloquea el bucle principal del controlador de audio.

Nota: Recuerda desbloquearlo después.


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

Mueve el bus del índice index al índice to_index.


void register_stream_as_sample(stream: AudioStream) 🔗

Experimental: Este método podría ser modificado o eliminado en versiones futuras.

Fuerza el registro de una secuencia como muestra.

Nota: Pueden producirse picos de retardo al llamar a este método, especialmente en compilaciones de un solo subproceso. Se recomienda llamar a este método durante la carga de recursos, donde el pico de retardo podría quedar oculto, en lugar de registrar la muestra justo antes de su reproducción.


void remove_bus(index: int) 🔗

Elimina el bus en el índice index.


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

Elimina el efecto en el índice effect_idx del bus en el índice bus_idx.


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

Si es true, el bus en el índice bus_idx está omitiendo los efectos.


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

Si es true, se habilita el efecto en el índice effect_idx en el bus en el índice bus_idx.


void set_bus_layout(bus_layout: AudioBusLayout) 🔗

Sobrescribe el AudioBusLayout actualmente utilizado.


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

Si es true, el bus en el índice bus_idx se silencia.


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

Establece el nombre del bus en el índice bus_idx en name.


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

Conecta la salida del bus en bus_idx al bus llamado send.


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

Si es true, el bus en el índice bus_idx está en modo solo.


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

Establece el volumen en decibeles del bus en el índice bus_idx a volume_db.


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

Establece el volumen como un valor lineal del bus en el índice bus_idx a volume_linear.

Nota: Usar este método equivale a llamar a set_bus_volume_db() con el resultado de @GlobalScope.linear_to_db() en un valor.


void set_enable_tagging_used_audio_streams(enable: bool) 🔗

Si se establece como true, todas las instancias de AudioStreamPlayback llamarán a AudioStreamPlayback._tag_used_streams() en cada paso de la mezcla.

Nota: Esta opción está habilitada de forma predeterminada en el editor, ya que la utilizan los plugins del editor para las vistas previas de las transmisiones de audio.


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

Intercambia la posición de dos efectos en el bus bus_idx.


void unlock() 🔗

Desbloquea el bucle principal del controlador de audio. (Después de cerrarlo, siempre debes abrirlo.)