Буфер реактивного расширения из буферов

Я записываю звук с микрофона и создаю массив байтов определенной длины X для каждого образца. Возможно ли с Rx.NET подписаться на EventHandler и получать уведомления каждый раз, когда массив накапливается до определенного размера?

В основном я хочу получить это:

source events: [---][---][---][---][---][---][---]
target events:       [-----][-----][-----][-----][-----]

Где, например, исходное событие создает массив байтов длиной 3200 байт, а полученные буферы запросов длиной 4096 байт.


person Pinco Pallino    schedule 13.10.2017    source источник


Ответы (1)


Да, это легко. Просто попробуйте это:

var source = Observable.Range(0, 100).Buffer(5)
var target = source.SelectMany(x => x).Buffer(7);

Мой source имеет длину буфера 5, которая преобразуется в длину буфера 7 в target.

person Enigmativity    schedule 13.10.2017
comment
Спасибо! Любой способ для буфера создать массив без преобразования массивов в список байтов и из него? - person Pinco Pallino; 14.10.2017
comment
@PincoPallino - Да, но все становится сложнее. Вы пробовали этот код, чтобы убедиться, что он достаточно производительный? - person Enigmativity; 14.10.2017
comment
Я сделал да, и это соответствует цели на данный момент. - person Pinco Pallino; 14.10.2017