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

Eredita: AudioStream < Resource < RefCounted < Object

Memorizza i dati audio caricati dai file WAV.

Descrizione

AudioStreamWAV memorizza i campioni audio caricati dai file WAV. Per riprodurre l'audio memorizzato, utilizza un AudioStreamPlayer (per audio non posizionale) o AudioStreamPlayer2D/AudioStreamPlayer3D (per audio posizionale). Il suono può essere ripetuto.

Questa classe può essere utilizzata anche per memorizzare dei dati audio PCM generati dinamicamente. Vedi anche AudioStreamGenerator per la generazione di audio procedurale.

Tutorial

Proprietà

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

{}

Metodi

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)


Enumerazioni

enum Format: 🔗

Format FORMAT_8_BITS = 0

Codec di audio PCM a 8 bit.

Format FORMAT_16_BITS = 1

Codec di audio PCM a 16 bit.

Format FORMAT_IMA_ADPCM = 2

L'audio è compresso con perdita di dati come IMA ADPCM.

Format FORMAT_QOA = 3

L'audio è compresso con perdita di dati come (Quite OK Audio).


enum LoopMode: 🔗

LoopMode LOOP_DISABLED = 0

L'audio non si ripete.

LoopMode LOOP_FORWARD = 1

L'audio si ripete tra loop_begin e loop_end, riproducendosi solo in avanti.

LoopMode LOOP_PINGPONG = 2

L'audio si ripete tra loop_begin e loop_end, riproducendosi avanti e indietro.

LoopMode LOOP_BACKWARD = 3

L'audio si ripete tra loop_begin e loop_end, riproducendosi solo all'indietro.


Descrizioni delle proprietà

PackedByteArray data = PackedByteArray() 🔗

Contiene i dati audio in byte.

Nota: Se format è impostato su FORMAT_8_BITS, questa proprietà si aspetta dati PCM a 8 bit con segno. Per convertire da PCM a 8 bit senza segno, sottrai 128 da ogni byte.

Nota: Se format è impostato su FORMAT_QOA, questa proprietà si aspetta dati da un file 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 audio.


int loop_begin = 0 🔗

  • void set_loop_begin(value: int)

  • int get_loop_begin()

Il punto iniziale del loop (in numero di campioni, relativo all'inizio del flusso).


int loop_end = 0 🔗

  • void set_loop_end(value: int)

  • int get_loop_end()

Il punto finale del loop (in numero di campioni, relativo all'inizio del flusso).


LoopMode loop_mode = 0 🔗

La modalità di ripetizione.


int mix_rate = 44100 🔗

  • void set_mix_rate(value: int)

  • int get_mix_rate()

La frequenza di campionamento per il mixaggio di questo audio. I valori elevati richiedono più spazio di archiviazione, ma risultano in una qualità migliore.

Nei giochi, le frequenze di campionamento comunemente in uso sono 11025, 16000, 22050, 32000, 44100 e 48000.

Secondo il Teorema del campionamento di Nyquist-Shannon, non vi è alcuna differenza di qualità per l'udito umano quando si superano i 40.000 Hz (poiché la maggior parte degli esseri umani può sentire solo fino a ~ 20.000 Hz, spesso meno). Se stai generando suoni dal tono più basso come le voci, le frequenze di campionamento più basse come 32000 o 22050 potrebbero essere usabili senza perdite di qualità.


bool stereo = false 🔗

  • void set_stereo(value: bool)

  • bool is_stereo()

Se true, l'audio è stereo.


Dictionary tags = {} 🔗

Contiene tag definiti dall'utente se presenti nei dati WAV.

I tag comunemente utilizzati includono title, artist, album, tracknumber e date (date non ha un formato di data standard).

Nota: Nessun tag è garantito a essere presente in ogni file, quindi assicurati di tenere conto di chiavi che non esistono sempre.

Nota: Attualmente sono supportati solo i file WAV che utilizzano un blocco LIST con un identificatore di INFO per codificare i tag.


Descrizioni dei metodi

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

Crea una nuova istanza di AudioStreamWAV dal buffer specificato. Il buffer deve contenere dati WAV.

Le chiavi e i valori di options corrispondono alle proprietà di ResourceImporterWAV. L'utilizzo di options è identico a load_from_file().


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

Crea una nuova istanza AudioStreamWAV dal percorso file specificato. Il file deve essere in formato WAV.

Le chiavi e i valori di options corrispondono alle proprietà di ResourceImporterWAV.

Esempio: Carica il primo file trascinato come WAV e riproducilo:

@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) 🔗

Salva l'AudioStreamWAV come file WAV al percorso path. I campioni con formati IMA ADPCM o Quite OK Audio non possono essere salvati.

Nota: Un'estensione .wav viene automaticamente aggiunta a path se manca.