reckfellENGINE

AudioStreamWav

Ресурс сэмплированного звука с форматом, частотой и петлёй.

На этой странице
class AudioStreamWavReckfellSharpНаследует AudioStream

AudioStreamWav хранит данные звука и параметры их интерпретации. В учебном примере Format16Bits, моно и little-endian PCM: два байта на сэмпл, без RIFF/WAV-заголовка в Data. Частоту задаёт MixRate; позиция плеера выражается в секундах.

LoopBegin и LoopEnd используют индексы аудиокадров, а не секунды или байты. У стереокадра два канала. Импортированный ресурс может использовать другой поддерживаемый формат сжатия: не интерпретируйте любые Data как PCM16. Ресурс можно разделять; изменение его настроек затрагивает пользователей ресурса.

Практический пример.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

AudioStreamWavКонструктор
# AudioStreamWav
C#
public AudioStreamWav();

Свойства8

DataСвойство
# Data
C#
public byte[] Data { get; set; }

Байты звука в кодировке, указанной Format. Для QOA и IMA ADPCM это сжатые данные, а не сырой 16-битный PCM. Не содержит обычный заголовок исходного WAV; учитывайте Stereo и MixRate при работе с PCM.

FormatСвойство
# Format
C#
public AudioStreamWav.FormatEnum Format { get; set; }

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

LoopBeginСвойство
# LoopBegin
C#
public int LoopBegin { get; set; }

Начало петли в кадрах отсчётов обработанного ресурса, не в секундах. При 48000 Гц кадр 12000 соответствует 0,25 с; для стерео не умножайте на число каналов.

LoopEndСвойство
# LoopEnd
C#
public int LoopEnd { get; set; }

Конец петли в кадрах отсчётов ресурса. Отрицательное значение настройки импорта, например −1, преобразуется импортером в индекс до записи этого свойства; не путайте этот параметр с секундами LoopOffset у Ogg/MP3.

LoopModeСвойство
# LoopMode
C#
public AudioStreamWav.LoopModeEnum LoopMode { get; set; }

Режим цикла.

MixRateСвойство
# MixRate
C#
public int MixRate { get; set; }

Частота дискретизации ресурса в Гц. После ограничения частоты при импорте проверяйте и MixRate, и объём данных; значение force/max_rate_hz без включения force/max_rate не включает преобразование.

StereoСвойство
# Stereo
C#
public bool Stereo { get; set; }

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

TagsСвойство
# Tags
C#
public Reckfell.Collections.Dictionary Tags { get; set; }

Содержит пользовательские теги, если они найдены в данных WAV. Обычно используемые теги включают title, artist, album, tracknumber и date, (date не имеет стандартного формата даты). Примечание: Не все теги гарантированно присутствует в каждом файле, поэтому обязательно учитывайте ключи, которые не всегда существуют. Примечание: В настоящее время поддерживаются только файлы WAV, использующие фрагмент LIST с идентификатором INFO для кодирования тегов.

Методы21

GetDatabyte[]
# GetData
C#
public byte[] GetData();
Возвращает byte[]
GetFormatAudioStreamWav.FormatEnum
# GetFormat
C#
public AudioStreamWav.FormatEnum GetFormat();
Возвращает AudioStreamWav.FormatEnum
GetLoopBeginint
# GetLoopBegin
C#
public int GetLoopBegin();
Возвращает int
GetLoopEndint
# GetLoopEnd
C#
public int GetLoopEnd();
Возвращает int
GetLoopModeAudioStreamWav.LoopModeEnum
# GetLoopMode
C#
public AudioStreamWav.LoopModeEnum GetLoopMode();
Возвращает AudioStreamWav.LoopModeEnum
GetMixRateint
# GetMixRate
C#
public int GetMixRate();
Возвращает int
GetTagsReckfell.Collections.Dictionary
# GetTags
C#
public Reckfell.Collections.Dictionary GetTags();
Возвращает Reckfell.Collections.Dictionary
IsStereobool
# IsStereo
C#
public bool IsStereo();
Возвращает bool
LoadFromBuffer2 перегрузки
# LoadFromBuffer · 1/2
C#
public static AudioStreamWav LoadFromBuffer(byte[] streamData, Reckfell.Collections.Dictionary options = null);

Создает новый экземпляр AudioStreamWav из указанного буфера. Буфер должен содержать данные WAV. Ключи и значения options соответствуют свойствам ResourceImporterWav. Использование options идентично AudioStreamWav.LoadFromFile.

Параметры
ИмяТипПо умолчанию
streamDatabyte[]—
optionsReckfell.Collections.Dictionarynull
Возвращает AudioStreamWav
# LoadFromBuffer · 2/2
C#
public static AudioStreamWav LoadFromBuffer(ReadOnlySpan<byte> streamData, Reckfell.Collections.Dictionary options);

Создает новый экземпляр AudioStreamWav из указанного буфера. Буфер должен содержать данные WAV. Ключи и значения options соответствуют свойствам ResourceImporterWav. Использование options идентично AudioStreamWav.LoadFromFile.

Параметры
ИмяТипПо умолчанию
streamDataReadOnlySpan<byte>—
optionsReckfell.Collections.Dictionary—
Возвращает AudioStreamWav
LoadFromFileAudioStreamWav
# LoadFromFile
C#
public static AudioStreamWav LoadFromFile(string path, Reckfell.Collections.Dictionary options = null);

Читает сырой аудиофайл напрямую, не применяя параметры .import редактора. Для ресурса проекта с применённым импортом используйте ResourceLoader.Load. Настройки преобразования WAV передавайте в options; без них сжатие по умолчанию — PCM, а не QOA импортера.

Параметры
ИмяТипПо умолчанию
pathstring—
optionsReckfell.Collections.Dictionarynull
path

Путь к настоящему исходному файлу. Убедитесь, что он доступен в выбранной сборке; путь к импортированному ресурсу не гарантирует наличие исходных байтов.

options

Параметры преобразования, например force/mono и compress/mode. Это отдельный словарь: значения из .import автоматически не подставляются.

Возвращает AudioStreamWav

Загруженный аудиоресурс либо null при ошибке чтения или формата. Проверяйте результат до воспроизведения.

SaveToWavError
# SaveToWav
C#
public Error SaveToWav(string path);

Сохраняет имеющиеся данные потока в WAV. Не запускает запись микрофона и не проверяет наличие полезного сигнала. В проверке PCM16-файл повторно загрузился с той же частотой, стерео и длительностью.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь для записи, обычно user://recording.wav. При отсутствии суффикса .wav реализация добавляет его; проверяйте доступ к каталогу.

Возвращает Error

Error.Ok при успехе; обрабатывайте остальные коды. Для IMA ADPCM и QOA сохранение этим методом недоступно; пример создаёт PCM16.

SetData2 перегрузки
# SetData · 1/2
C#
public void SetData(byte[] data);
Параметры
ИмяТипПо умолчанию
databyte[]—
# SetData · 2/2
C#
public void SetData(ReadOnlySpan<byte> data);
Параметры
ИмяТипПо умолчанию
dataReadOnlySpan<byte>—
SetFormatvoid
# SetFormat
C#
public void SetFormat(AudioStreamWav.FormatEnum format);
Параметры
ИмяТипПо умолчанию
formatAudioStreamWav.FormatEnum—
SetLoopBeginvoid
# SetLoopBegin
C#
public void SetLoopBegin(int loopBegin);
Параметры
ИмяТипПо умолчанию
loopBeginint—
SetLoopEndvoid
# SetLoopEnd
C#
public void SetLoopEnd(int loopEnd);
Параметры
ИмяТипПо умолчанию
loopEndint—
SetLoopModevoid
# SetLoopMode
C#
public void SetLoopMode(AudioStreamWav.LoopModeEnum loopMode);
Параметры
ИмяТипПо умолчанию
loopModeAudioStreamWav.LoopModeEnum—
SetMixRatevoid
# SetMixRate
C#
public void SetMixRate(int mixRate);
Параметры
ИмяТипПо умолчанию
mixRateint—
SetStereovoid
# SetStereo
C#
public void SetStereo(bool stereo);
Параметры
ИмяТипПо умолчанию
stereobool—
SetTagsvoid
# SetTags
C#
public void SetTags(Reckfell.Collections.Dictionary tags);
Параметры
ИмяТипПо умолчанию
tagsReckfell.Collections.Dictionary—

AudioStreamWav.FormatEnum

ЗначениеОписание
Format16Bits = 1

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

Format8Bits = 0

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

ImaAdpcm = 2

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

Qoa = 3

Аудио сжато с потерями как Хорошо..

AudioStreamWav.LoopModeEnum

ЗначениеОписание
Backward = 3

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

Disabled = 0

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

Forward = 1

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

Pingpong = 2

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

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.