0

私はオーディオプログラミングに不慣れで、やるべき仕事があり、方法がわかりません。あなたが私を正しい方向に導くことができれば、それは私にとって大きな意味があります。

1つのサウンドデバイスのすべてのチャンネル、たとえば7.1カードで、8つのモノラルチャンネルすべてを介して、さまざまなmp3ファイルを再生したいと思います。しかし、私はそれらを個別に制御したいと思っています。つまり、再生、一時停止、停止、およびその他すべての標準的なプレーヤーオプションを使用できるようになりました。

MultiplexingWaveProviderをテストしてきましたが、問題なく動作しましたが、音楽を再生したり停止したりするオプションがありません。次に、Naudio用のASIOドライバーを試して、各チャネルを個別にアドレス指定しようとしましたが、最後にASIOに呼び出しました。コンストラクターは最初のものを上書きします。どうすればこれを機能させることができますか?Naudioまたは他の無料のライブラリを使用していますか?

これが私のコードです

AsioOut waveOutdevice1 = new AsioOut();
waveOutdevice1.ChannelOffset = -1;
waveOutdevice1.Init(input1);

AsioOut waveOutdevice2 = new AsioOut();
waveOutdevice2.ChannelOffset = 1;
waveOutdevice2.Init(input2);

waveOutdevice1.Play();
waveOutdevice2.Play();
4

1 に答える 1

0

複数の AsioOut インスタンスを開くことはできません。マルチチャンネル入力を提供する必要があります。を使用MultiplexingWaveProviderする必要があります。再生と停止のオプションがないということの意味がわかりません。再生を使用するだけです。一部のチャンネルを再生したいが他のチャンネルを再生したくない場合は、ソースからの読み取りと無音の出力を切り替えることができる別の WaveProvider を実装します。つまり、すべてのチャンネルが常に再生されていますが、一部のチャンネルは無音で再生されています。

于 2013-02-21T16:01:06.257 に答える