来自缓冲区的反应性扩展缓冲区

Reactive Extension buffer from buffers

我正在从麦克风捕获音频并在每个样本中生成一个特定长度 X 的字节数组。 Rx.NET 是否可以订阅 EventHandler 并在每次数组累积到一定大小时得到通知?

基本上我想得到这个:

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

例如,源事件生成一个长度为 3200 字节的字节数组,而接收到的缓冲区需要 4096 字节长。

是的,很简单。试试这个:

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

我的 source 的缓冲区长度为 5,在 target 中转换为缓冲区长度 7