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

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

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


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

Nombre del dispositivo actual para la entrada de audio (ver get_input_device_list()). En sistemas con múltiples entradas de audio (como analógica, USB o HDMI), ésto se puede usar para seleccionar el dispositivo de entrada de audio. El valor "Default" grabará audio desde la entrada de audio predeterminada del sistema. Si se establece un nombre de dispositivo no válido, el valor se revertirá a "Default".

Nota: ProjectSettings.audio/driver/enable_input debe ser true para que la entrada de audio funcione. Véase también la descripción de esa configuración para advertencias relacionadas con permisos y ajustes de privacidad del sistema operativo.


String output_device = "Default" 🔗

  • void set_output_device(value: String)

  • String get_output_device()

Nombre del dispositivo actual para la salida de audio (ver get_output_device_list()). En sistemas con múltiples salidas de audio (como analógica, USB o HDMI), ésto se puede usar para seleccionar el dispositivo de salida de audio. El valor "Default" reproducirá audio a través de la salida de audio predeterminada del sistema. Si se establece un nombre de dispositivo no válido, el valor se revertirá a "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.


int get_input_buffer_length_frames() 🔗

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

Devuelve el tamaño absoluto del búfer de entrada del micrófono. Este valor se establece como un múltiplo de la latencia de audio y puede usarse para estimar la tasa mínima a la que se deben obtener los cuadros (frames).


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. Véase 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.


PackedVector2Array get_input_frames(frames: int) 🔗

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

Devuelve un PackedVector2Array que contiene exactamente frames muestras de audio del búfer interno del micrófono, si está disponible. De lo contrario, devuelve un PackedVector2Array vacío.

El búfer se llena a una tasa de get_input_mix_rate() cuadros por segundo cuando set_input_device_active() se ha configurado correctamente en true.

Las muestras son valores PCM de punto flotante con signo entre -1 y 1.


int get_input_frames_available() 🔗

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

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


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 🔗

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 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.


Error set_input_device_active(active: bool) 🔗

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

Si active es true, inicia el flujo de entrada del micrófono especificado por input_device o devuelve un error si falla.

Si active es false, detiene el flujo de entrada si está en ejecución.


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