NAudio AsioOut クラスを見ると、新しいファイルが出力を通じて再生されるたびにインスタンスが破棄され、再作成されることを意図していることは明らかです。Init メソッドは、インスタンスに既にソース ストリームがある場合、特に InvalidOperationException をスローします。一般に、通常の状況で Asio 出力を破棄して再作成することは問題ではありませんが、Asio ドライバーとして設定されたコンボルバーに出力を送信しているため、そうするのを避けたい場合があります。ドライバーが初期化されるたびに、大きなコンボリューション フィルターをリロードする必要があるため、ギャップのないトラックを再生する場合、遅延が煩わしくなります。
遅延を回避するために、AsioOut インスタンスが既に存在する場合は破棄しないという考えがあり、キュー内の次のファイルのビット深度とサンプリング レートは最後のファイルと同じです。問題は、AsioOut クラスで Init を呼び出して、次に再生するファイルを渡す必要があることです。これにより、上記の例外がスローされます。ファイル間でビット深度、サンプリング レート、および出力チャネル数が変更されていないことを確認した場合、例外のスローを回避するために Init メソッドを変更しても安全ですか?
ありがとう、アラン