0
これで、NAudioのlibを探検しています。ASIOデバイスの特定のチャンネルにn個のオーディオソースを同時に(同時に)送信します
しかし、私はASIOクラスを使用して何かが欠けているかどうかはわかりません。基本的に私の要件は次のとおりです。
- 動的出力(モノラル)ソースASIOデバイスに、専用チャネル(後で私はおそらく64チャンネルで働くことになります)
- の各ソースは、ストリーム」への無料う : '(同時に複数のソース)セッション中の任意の時点で、デバイスへのn個のオーディオソースは
- は
ように、コードで私のようなものを持っていると思い、各チャンネルのコントロールを持っています10
...
WaveFileReader source1 = new WaveFileReader(pathToMyFile1);
WaveFileReader source2 = new WaveFileReader(pathToMyFile2);
WaveFileReader source3 = new WaveFileReader(pathToMyFile3);
...
WaveFileReader sourceN = new WaveFileReader(pathToMyFileN);
AsioOut out = new AsioOut();
...
/*Now init out...*/
...
out.Play();
...
/* now react on events, possibly within a multi-threaded enviroment*/
/* and concurrently send each of these sources to a dedicated channel*/
/* as required, (as stated, possibly even many at the same time) */
...
だから私の質問は基本的には次のとおりです。
私は、既存のクラスのいずれかを使用して、このような何かを達成することはできますか?または、私は、インターフェイス(ISampleProvider、IWaveProviderなど)のうちの1つを自分自身でエンパワーメントする必要がありますか、かなり抽象度が下がっていくと確信していますか?
これに任意の入力ありがとう!
入力いただきありがとうございます、私は実装をより深く見ていきます。一般に、ASIOドライバのアクセスが開かれた後、専用チャネルバッファへの書き込みは問題ではありません。 –
はい、バッファに直接書き込む場合は最高のパフォーマンスです –