AudioStreamWAV

Наследует: AudioStream < Resource < RefCounted < Object

Сохраняет аудиоданные, загруженные из WAV-файлов.

Описание

AudioStreamWAV хранит звуковые образцы, загруженные из файлов WAV. Для воспроизведения сохраненного звука используйте AudioStreamPlayer (для непозиционного звука) или AudioStreamPlayer2D/AudioStreamPlayer3D (для позиционного звука). Звук может быть зациклен.

Этот класс также можно использовать для хранения динамически сгенерированных аудиоданных PCM. См. также AudioStreamGenerator для процедурной генерации звука.

Обучающие материалы

Свойства

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

{}

Методы

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)


Перечисления

enum Format: 🔗

Format FORMAT_8_BITS = 0

8-битный аудиокодек PCM.

Format FORMAT_16_BITS = 1

16-битный аудиокодек PCM.

Format FORMAT_IMA_ADPCM = 2

Аудио сжимается с потерями по методу IMA ADPCM.

Format FORMAT_QOA = 3

Аудио сжато с потерями как Quite OK Audio.


enum LoopMode: 🔗

LoopMode LOOP_DISABLED = 0

Звук не зацикливается.

LoopMode LOOP_FORWARD = 1

Аудио зацикливает данные между loop_begin и loop_end, воспроизводя только вперед.

LoopMode LOOP_PINGPONG = 2

Аудио циклически воспроизводит данные между loop_begin и loop_end, воспроизводя их вперед и назад.

LoopMode LOOP_BACKWARD = 3

Аудио зацикливает данные между loop_begin и loop_end, воспроизводя их только в обратном порядке.


Описания свойств

PackedByteArray data = PackedByteArray() 🔗

Содержит аудиоданные в байтах.

Примечание: Если format установлен на FORMAT_8_BITS, это свойство ожидает данные PCM со знаком 8 бит. Для преобразования из беззнаковых 8 бит PCM вычтите 128 из каждого байта.

Примечание: Если format установлен на FORMAT_QOA, это свойство ожидает данные из полного файла QOA.

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 🔗

Аудиоформат.


int loop_begin = 0 🔗

  • void set_loop_begin(value: int)

  • int get_loop_begin()

Начальная точка цикла (в количестве сэмплов относительно начала потока).


int loop_end = 0 🔗

  • void set_loop_end(value: int)

  • int get_loop_end()

Конечная точка цикла (в количестве сэмплов относительно начала потока).


LoopMode loop_mode = 0 🔗

Режим цикла.


int mix_rate = 44100 🔗

  • void set_mix_rate(value: int)

  • int get_mix_rate()

Частота дискретизации для микширования этого звука. Более высокие значения требуют больше места для хранения, но приводят к лучшему качеству.

В играх обычно используются следующие частоты дискретизации: 11025, 16000, 22050, 32000, 44100 и 48000.

Согласно теореме дискретизации Найквиста-Шеннона, для человеческого слуха нет никакой разницы в качестве при выходе за пределы 40 000 Гц (поскольку большинство людей могут слышать только до ~20 000 Гц, часто меньше). Если вы используете более низкие звуки, такие как голоса, можно использовать более низкие частоты дискретизации, такие как 32000 или 22050, без потери качества.


bool stereo = false 🔗

  • void set_stereo(value: bool)

  • bool is_stereo()

Если true, звук стерео.


Dictionary tags = {} 🔗

Содержит пользовательские теги, если они найдены в данных WAV.

Обычно используемые теги включают title, artist, album, tracknumber и date, (date не имеет стандартного формата даты).

Примечание: Не все теги гарантированно присутствует в каждом файле, поэтому обязательно учитывайте ключи, которые не всегда существуют.

Примечание: В настоящее время поддерживаются только файлы WAV, использующие фрагмент LIST с идентификатором INFO для кодирования тегов.


Описания метода

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

Создает новый экземпляр AudioStreamWAV из указанного буфера. Буфер должен содержать данные WAV.

Ключи и значения options соответствуют свойствам ResourceImporterWAV. Использование options идентично load_from_file().


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

Создает новый экземпляр AudioStreamWAV из указанного пути к файлу. Файл должен быть в формате WAV.

Ключи и значения options соответствуют свойствам ResourceImporterWAV.

Пример: Загрузите первый перетащенный файл как WAV и воспроизведите его:

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

Сохраняет AudioStreamWAV как файл WAV в path. Сэмплы с форматами IMA ADPCM или Quite OK Audio не могут быть сохранены.

Примечание: Расширение .wav автоматически добавляется к path, если оно отсутствует.