2017-10-13 4 views
2

Ich nehme Audio vom Mikrofon und erzeuge ein Byte-Array mit einer bestimmten Länge X bei jedem Sample. Ist es mit Rx.NET möglich, den EventHandler zu abonnieren und jedes Mal benachrichtigt zu werden, wenn sich das Array in einer bestimmten Größe ansammelt?Reaktiver Erweiterungspuffer aus Puffern

Grundsätzlich möchte ich dies erhalten:

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

Wo zum Beispiel die Quelle Ereignis ein Byte-Array mit einer Länge von 3200 Bytes und die empfangene produziert will Puffer 4096 Byte lang.

Antwort

2

Ja, es ist einfach. Genau dies versucht:

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

Mein source hat eine Pufferlänge von 5, die zu einer Pufferlänge von 7 in target umgewandelt werden.

+0

Danke! Gibt es eine Möglichkeit, dass ein Puffer ein Array erzeugt, ohne dass die Arrays in und aus einer Liste von Bytes transformiert werden? –

+0

@PincoPallino - Ja, aber es wird komplizierter. Haben Sie diesen Code ausprobiert, um zu sehen, ob er performant genug ist? – Enigmativity

+0

Ich tat ja und es passt für den Zweck für jetzt. –

Verwandte Themen