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
|
||
|
||
|
||
|
Métodos
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() |
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
Número de buses de audio disponibles.
String input_device = "Default" 🔗
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" 🔗
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 🔗
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.
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.
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.)