AudioStreamWAV
Наследует: AudioStream < Resource < RefCounted < Object
Сохраняет аудиоданные, загруженные из WAV-файлов.
Описание
AudioStreamWAV хранит звуковые образцы, загруженные из файлов WAV. Для воспроизведения сохраненного звука используйте AudioStreamPlayer (для непозиционного звука) или AudioStreamPlayer2D/AudioStreamPlayer3D (для позиционного звука). Звук может быть зациклен.
Этот класс также можно использовать для хранения динамически сгенерированных аудиоданных PCM. См. также AudioStreamGenerator для процедурной генерации звука.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
load_from_buffer(stream_data: PackedByteArray, options: Dictionary = {}) static |
|
load_from_file(path: String, options: Dictionary = {}) static |
|
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, это свойство ожидает данные 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.
Аудиоформат.
Начальная точка цикла (в количестве сэмплов относительно начала потока).
Конечная точка цикла (в количестве сэмплов относительно начала потока).
Режим цикла.
Частота дискретизации для микширования этого звука. Более высокие значения требуют больше места для хранения, но приводят к лучшему качеству.
В играх обычно используются следующие частоты дискретизации: 11025, 16000, 22050, 32000, 44100 и 48000.
Согласно теореме дискретизации Найквиста-Шеннона, для человеческого слуха нет никакой разницы в качестве при выходе за пределы 40 000 Гц (поскольку большинство людей могут слышать только до ~20 000 Гц, часто меньше). Если вы используете более низкие звуки, такие как голоса, можно использовать более низкие частоты дискретизации, такие как 32000 или 22050, без потери качества.
Если true, звук стерео.
Dictionary tags = {} 🔗
void set_tags(value: Dictionary)
Dictionary get_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, если оно отсутствует.