AudioEffectCapture
Читает сырые стереокадры шины через кольцевой буфер.
AudioEffectCapture копирует сигнал в кольцевой буфер без изменения звука. Один Vector2 содержит левый и правый float-сэмпл одного момента. Для чтения проверяйте доступное число кадров; GetBuffer() потребляет их.
Задайте BufferLength до создания экземпляра эффекта и регулярно читайте данные. Переполнение увеличивает GetDiscardedFrames(). Захват находится на своём месте в цепочке, до фейдера/mute данной шины; он не доказывает физический вывод на колонки.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AudioEffectCaptureКонструктор
public AudioEffectCapture();Свойства1
BufferLengthСвойство
public float BufferLength { get; set; }Запрашиваемая длина буфера в секундах. Задайте до добавления эффекта на шину: буфер выделяется при первой инициализации, а изменение свойства не обещает изменить уже выделенную очередь. Не равно лимиту всей записи.
Методы9
CanGetBufferbool
public bool CanGetBuffer(int frames);Возвращает true, если во внутреннем кольцевом буфере доступно для чтения не менее frames сэмплов.
| Имя | Тип | По умолчанию |
|---|---|---|
frames | int | — |
boolClearBuffervoid
public void ClearBuffer();Удаляет текущие непрочитанные кадры из очереди. Не очищает ваш список уже сохранённых кадров и не сбрасывает GetDiscardedFrames; для нового дубля выполните обе операции в своём коде.
GetBufferVector2[]
public Vector2[] GetBuffer(int frames);Читает и потребляет указанное число стереокадров PCM из очереди захвата. Вызывайте регулярно; это не бесконечное хранилище и не получение всего WAV одним вызовом.
| Имя | Тип | По умолчанию |
|---|---|---|
frames | int | — |
framesЧисло кадров, не байтов. Один Vector2 содержит левый и правый канал. Запрашивайте положительное доступное число и проверяйте результат.
Vector2[]Vector2[] считанных кадров. При недостатке данных или нулевом запросе массив пуст; неверный размер/неинициализированный буфер также сообщает ошибку.
GetBufferLengthfloat
public float GetBufferLength();floatGetBufferLengthFramesint
public int GetBufferLengthFrames();Возвращает общий размер внутреннего кольцевого буфера в сэмплах.
intGetDiscardedFrameslong
public long GetDiscardedFrames();Читает накопленное число кадров, потерянных при переполнении буфера. Для каждой записи сохраняйте исходное значение и отслеживайте разницу. ClearBuffer не обнуляет этот счётчик.
longНакопленный int64-счётчик потерь. Рост во время записи означает, что непрерывность PCM нарушена.
GetFramesAvailableint
public int GetFramesAvailable();Читает текущее число кадров, доступных для потребления. Добавьте эффект на шину до опроса: инициализация буфера происходит при создании экземпляра эффекта.
intКоличество кадров, не байтов и не секунд. Это текущая очередь, а не общая длина уже собранной записи.
GetPushedFrameslong
public long GetPushedFrames();Возвращает количество сэмплов, записанных с аудиошины.
longSetBufferLengthvoid
public void SetBufferLength(float bufferLengthSeconds);| Имя | Тип | По умолчанию |
|---|---|---|
bufferLengthSeconds | float | — |