reckfellENGINE

AudioStreamGenerator

Ресурс для воспроизведения PCM, создаваемого программой.

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

Назначьте ресурс AudioStreamPlayer, запустите плеер и получите AudioStreamGeneratorPlayback. Регулярно подавайте стереокадры через PushBuffer; генератор сам не синтезирует звук.

Задайте MixRateMode, исходную частоту и BufferLength до создания playback. Частоту синусоиды определяет ваш фазовый шаг; MixRate задаёт частоту исходных PCM-кадров только в Custom. Микшер может ресемплировать поток к частоте устройства.

Пополняйте очередь по свободному месту, сохраняйте фазу между блоками и следите за GetSkips. Размер очереди не является полной задержкой вывода. Нет основания автоматически снижать частоту только из-за использования C#: измеряйте свой генератор на целевой системе.

Рабочий пример C# и диагностика.

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

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

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

Создаёт ресурс генератора: Custom, MixRate=44100 и BufferLength=0.5 секунды. Ресурс сам не синтезирует PCM и не начинает воспроизведение; используйте плеер и заполняйте полученный playback.

Свойства3

BufferLengthСвойство
# BufferLength
C#
public float BufferLength { get; set; }

Желаемая длина очереди в секундах при создании playback. Вместимость округляется кольцевым буфером и не равна точной задержке звукового устройства. Увеличение даёт больше запаса на пополнение, но может увеличить задержку управления. Задавайте до создания playback.

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

Частота исходных PCM-кадров в секунду только для режима Custom. По умолчанию 44100. Это не частота синусоиды и не принудительная смена частоты устройства. Setter хранит значение без автоматического ограничения диапазоном Inspector: проверяйте конечное положительное число до создания playback.

MixRateModeСвойство
# MixRateMode
C#
public AudioStreamGenerator.AudioStreamGeneratorMixRate MixRateMode { get; set; }

Выбирает частоту исходного PCM: Custom использует MixRate, Output — выходную частоту AudioServer, Input — его входную частоту. Input не включает микрофон и не заполняет очередь его данными. Max — служебная граница enum, не рабочий режим.

Методы6

GetBufferLengthfloat
# GetBufferLength
C#
public float GetBufferLength();

Читает настройку BufferLength. Это запрошенная длительность, не фактическая заполненность очереди и не измеренная задержка.

Возвращает float

Настроенная длительность BufferLength в секундах, не размер очереди в кадрах.

GetMixRatefloat
# GetMixRate
C#
public float GetMixRate();

Возвращает сохранённую пользовательскую MixRate. В режимах Output/Input фактическая исходная частота берётся из AudioServer, поэтому это значение не является универсальным запросом действующей частоты.

Возвращает float

Сохранённая пользовательская MixRate в кадрах/с; действует как источник частоты в Custom.

GetMixRateModeAudioStreamGenerator.AudioStreamGeneratorMixRate
# GetMixRateMode
C#
public AudioStreamGenerator.AudioStreamGeneratorMixRate GetMixRateMode();

Возвращает настройку MixRateMode, определяющую источник частоты для генератора.

Возвращает AudioStreamGenerator.AudioStreamGeneratorMixRate

Текущий режим выбора исходной частоты генератора.

SetBufferLengthvoid
# SetBufferLength
C#
public void SetBufferLength(float seconds);

Устанавливает BufferLength для создания последующих playback. Setter сам не пересоздаёт очередь уже существующего playback. Проверяйте конечную положительную длительность и разумный расход памяти.

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

Конечная положительная длительность в секундах. Проверьте её до создания playback; очень большая очередь требует соответствующей памяти.

SetMixRatevoid
# SetMixRate
C#
public void SetMixRate(float hz);

Сохраняет пользовательскую MixRate для режима Custom. Формула генерации должна использовать ту же частоту исходных кадров. Не меняйте её у работающего потока без согласованной остановки и повторной настройки.

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

Конечная положительная частота исходного PCM в кадрах/с. Она действует в Custom и должна совпадать с расчётами производителя.

SetMixRateModevoid
# SetMixRateMode
C#
public void SetMixRateMode(AudioStreamGenerator.AudioStreamGeneratorMixRate mode);

Устанавливает MixRateMode. Выбор Output/Input не заполняет PCM-буфер автоматически; производитель всё равно должен подавать данные с согласованной частотой.

Параметры
ИмяТипПо умолчанию
modeAudioStreamGenerator.AudioStreamGeneratorMixRate—
mode

Output, Input или Custom. Не передавайте Max и произвольные значения enum.

AudioStreamGenerator.AudioStreamGeneratorMixRate

ЗначениеОписание
Custom = 2

Пользовательская скорость смешивания, указанная AudioStreamGenerator.MixRate.

Input = 1

Текущая скорость микширования входного сигнала AudioServer.

Max = 3

Максимальное значение для перечисления режима скорости смешивания.

Output = 0

Текущая скорость микширования выходного сигнала AudioServer.

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

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

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

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