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.

AudioStreamWAV

Hereda: AudioStream < Resource < RefCounted < Object

Almacena datos de audio cargados desde archivos WAV.

Descripción

AudioStreamWAV stores sound samples loaded from WAV files. To play the stored sound, use an AudioStreamPlayer (for non-positional audio) or AudioStreamPlayer2D/AudioStreamPlayer3D (for positional audio). The sound can be looped.

This class can also be used to store dynamically-generated PCM audio data. See also AudioStreamGenerator for procedural audio generation.

Tutoriales

Propiedades

PackedByteArray

data

PackedByteArray()

Format

format

0

int

loop_begin

0

int

loop_end

0

LoopMode

loop_mode

0

int

mix_rate

44100

bool

stereo

false

Dictionary

tags

{}

Métodos

AudioStreamWAV

load_from_buffer(stream_data: PackedByteArray, options: Dictionary = {}) static

AudioStreamWAV

load_from_file(path: String, options: Dictionary = {}) static

Error

save_to_wav(path: String)


Enumeraciones

enum Format: 🔗

Format FORMAT_8_BITS = 0

8-bit PCM audio codec.

Format FORMAT_16_BITS = 1

16-bit PCM audio codec.

Format FORMAT_IMA_ADPCM = 2

Audio is lossily compressed as IMA ADPCM.

Format FORMAT_QOA = 3

El audio está comprimido con pérdida usando Quite OK Audio.


enum LoopMode: 🔗

LoopMode LOOP_DISABLED = 0

El audio no se reproduce en bucle.

LoopMode LOOP_FORWARD = 1

El audio hace un bucle con los datos entre loop_begin y loop_end, reproduciéndose sólo hacia adelante.

LoopMode LOOP_PINGPONG = 2

El audio hace un bucle con los datos entre loop_begin y loop_end, reproduciéndose hacia adelante y hacia atrás.

LoopMode LOOP_BACKWARD = 3

El audio hace un bucle con los datos entre loop_begin y loop_end, reproduciéndose sólo hacia atrás.


Descripciones de Propiedades

PackedByteArray data = PackedByteArray() 🔗

Contiene los datos de audio en bytes.

Nota: Si format está configurado en FORMAT_8_BITS, esta propiedad espera datos PCM de 8 bits con signo. Para convertir desde PCM de 8 bits sin signo, resta 128 a cada byte.

Nota: Si format está configurado en FORMAT_QOA, esta propiedad espera datos de un archivo QOA completo.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedByteArray for more details.


Format format = 0 🔗

Formato de audio.


int loop_begin = 0 🔗

  • void set_loop_begin(value: int)

  • int get_loop_begin()

El punto de inicio del bucle (en número de muestras, relativo al inicio de la secuencia).


int loop_end = 0 🔗

  • void set_loop_end(value: int)

  • int get_loop_end()

El punto de fin del bucle (en número de muestras, relativo al inicio de la secuencia).


LoopMode loop_mode = 0 🔗

El modo de repetición.


int mix_rate = 44100 🔗

  • void set_mix_rate(value: int)

  • int get_mix_rate()

La frecuencia de muestreo para mezclar este audio. Valores más altos requieren más espacio de almacenamiento, pero ofrecen mejor calidad.

En juegos, las frecuencias de muestreo comunes son 11025, 16000, 22050, 32000, 44100 y 48000.

Según el teorema de muestreo de Nyquist-Shannon, no hay diferencia de calidad perceptible para el oído humano al superar los 40,000 Hz (ya que la mayoría de los humanos solo pueden oír hasta ~20,000 Hz, a menudo menos). Si estás usando sonidos de tono más bajo, como voces, frecuencias de muestreo más bajas como 32000 o 22050 pueden ser utilizables sin pérdida de calidad.


bool stereo = false 🔗

  • void set_stereo(value: bool)

  • bool is_stereo()

Si es true, el audio es estéreo.


Dictionary tags = {} 🔗

Contiene las etiquetas definidas por el usuario si se encuentran en los datos WAV.

Las etiquetas más comunes incluyen title, artist, album, tracknumber y date (date no tiene un formato de fecha estándar).

Nota: Ninguna etiqueta está garantizada en todos los archivos, por lo que se debe tener en cuenta que las claves pueden no existir siempre.

Nota: Actualmente, solo se admiten archivos WAV que utilicen un chunk LIST con un identificador INFO para codificar las etiquetas.


Descripciones de Métodos

AudioStreamWAV load_from_buffer(stream_data: PackedByteArray, options: Dictionary = {}) static 🔗

Crea una nueva instancia de AudioStreamWAV a partir del buffer proporcionado. El buffer debe contener datos WAV.

Las claves y valores de options coinciden con las propiedades de ResourceImporterWAV. El uso de options es idéntico al de load_from_file().


AudioStreamWAV load_from_file(path: String, options: Dictionary = {}) static 🔗

Crea una nueva instancia de AudioStreamWAV a partir de la ruta de archivo proporcionada. El archivo debe estar en formato WAV.

Las claves y valores de options coinciden con las propiedades de ResourceImporterWAV.

Ejemplo: Carga el primer archivo arrastrado como WAV y reprodúcelo:

@onready var audio_player = $AudioStreamPlayer

func _ready():
    get_window().files_dropped.connect(_on_files_dropped)

func _on_files_dropped(files):
    if files[0].get_extension() == "wav":
        audio_player.stream = AudioStreamWAV.load_from_file(files[0], {
                "force/max_rate": true,
                "force/max_rate_hz": 11025
            })
        audio_player.play()

Error save_to_wav(path: String) 🔗

Guarda el AudioStreamWAV como un archivo WAV en path. Las muestras con formatos IMA ADPCM o Quite OK Audio no se pueden guardar.

Nota: Se añade automáticamente una extensión .wav a path si falta.