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

Успадковує: 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() 🔗

  • void set_data(value: PackedByteArray)

  • PackedByteArray get_data()

Містить аудіодані в байтах.

Примітка. Якщо format встановлено на FORMAT_8_BITS, ця властивість очікує 8-розрядних даних PCM зі знаком. Щоб конвертувати з беззнакового 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.

Зазвичай використовуються такі теги: назва, виконавець, альбом, tracknumber, and 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(файли):
    if files[0].get_extension() == "wav":
        audio_player.stream = AudioStreamWAV.load_from_file(файли[0], {
                "force/max_rate": правда,
                "force/max_rate_hz": 11025
            })
        audio_player.play()

Error save_to_wav(path: String) 🔗

Зберігає AudioStreamWAV як файл WAV у path. Зразки з форматами IMA ADPCM або Quite OK Audio не можна зберегти.

Примітка: Розширення .wav автоматично додається до path, якщо воно відсутнє.