reckfellENGINE

AudioStreamGeneratorPlayback

Очередь стерео PCM для одного воспроизведения генератора.

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

Получайте объект у запущенного AudioStreamPlayer с AudioStreamGenerator. Кадр Vector2 содержит левый и правый каналы; это не пара времени и частоты.

GetFramesAvailable показывает свободное место. PushBuffer принимает весь блок или отказывает; bool сообщает о записи в очередь, не о завершении воспроизведения. При нехватке входа микшер дополняет звук нулями и увеличивает GetSkips.

ClearBuffer разрешён только на неактивном playback. Генератор не реализует обычную перемотку Seek и не является готовым микрофонным/сетевым потоком. Используйте одного согласованного производителя данных.

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

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

Методы7

CanPushBufferbool
# CanPushBuffer
C#
public bool CanPushBuffer(int amount);

Проверяет, достаточно ли свободного места для указанного числа стереокадров. Это сравнение вместимости, не резервирование места и не проверка данных. Используйте одного согласованного производителя.

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

Неотрицательное число стереокадров для проверки. Метод сравнивает его со свободным местом, а не проверяет корректность размера протокола.

Возвращает bool

true, если запрошенное число кадров помещается сейчас; false, если свободного места меньше.

ClearBuffervoid
# ClearBuffer
C#
public void ClearBuffer();

Очищает очередь только у неактивного playback и обнуляет его счётчик смешанного времени. Во время воспроизведения нативная реализация выдаёт диагностику и не очищает буфер. Не используйте как перемотку; счётчик GetSkips этой операцией не сбрасывается.

GetFramesAvailableint
# GetFramesAvailable
C#
public int GetFramesAvailable();

Возвращает количество стереокадров, которые сейчас можно записать. Это свободное место, а не число непрослушанных кадров. Значение может расти по мере чтения микшером.

Возвращает int

Число свободных для записи стереокадров. Ноль означает, что очередь заполнена.

GetSkipsint
# GetSkips
C#
public int GetSkips();

Возвращает число случаев, когда внутреннему смешиванию не хватило PCM и остаток был заполнен нулями. Это не количество пропущенных кадров и не частота процессорных кадров. Старт playback сбрасывает счётчик.

Возвращает int

Число событий нехватки PCM с последнего старта playback; рост указывает на проблему пополнения.

PushBuffer2 перегрузки
# PushBuffer · 1/2
C#
public bool PushBuffer(Vector2[] frames);

Копирует блок нормализованных стереокадров в очередь. Если целый блок не помещается, возвращает false без частичной записи. Успешная запись означает принятие в очередь, а не завершённое воспроизведение. Сохраняйте фазу/состояние декодера между блоками.

Параметры
ИмяТипПо умолчанию
framesVector2[]—
frames

Массив или span стереокадров: X — левый канал, Y — правый. Число элементов равно числу кадров, не сумме отсчётов двух каналов. Подготовьте конечные значения подходящего уровня.

Возвращает bool

true, если весь блок принят в очередь; false, если блок не помещается. Количество частично принятых кадров не возвращается.

# PushBuffer · 2/2
C#
public bool PushBuffer(ReadOnlySpan<Vector2> frames);

Копирует блок нормализованных стереокадров в очередь. Если целый блок не помещается, возвращает false без частичной записи. Успешная запись означает принятие в очередь, а не завершённое воспроизведение. Сохраняйте фазу/состояние декодера между блоками.

Параметры
ИмяТипПо умолчанию
framesReadOnlySpan<Vector2>—
frames

Массив или span стереокадров: X — левый канал, Y — правый. Число элементов равно числу кадров, не сумме отсчётов двух каналов. Подготовьте конечные значения подходящего уровня.

Возвращает bool

true, если весь блок принят в очередь; false, если блок не помещается. Количество частично принятых кадров не возвращается.

PushFramebool
# PushFrame
C#
public bool PushFrame(Vector2 frame);

Добавляет один стереокадр: Vector2.X — левый канал, Y — правый. При заполненной очереди возвращает false. Для потока из многих кадров используйте блоки PushBuffer вместо отдельного вызова на каждый кадр.

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

Один нормализованный стереокадр. X/Y — амплитуды каналов, не время и частота; контролируйте конечность и уровень сигнала.

Возвращает bool

true после записи кадра; false, если для него не было свободного места.

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

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

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

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