2

NAudioを使用してアクティブなすべてのオーディオ入力デバイスをリッスンするWindowsフォームプログラムに取り組んでいます。私が遭遇している問題は、録音の開始時に接続されているオーディオ入力デバイスが1つしかない場合、録音が終了する前に取り外されるMMExceptionことMMResultですMMResult.NoDriver

私が想定している別のスレッドで機能するメソッドを使用しているためWaveIn.StartRecording()、例外はキャッチされずにメインメソッドにスローされます。

誰かが安全に録音を続行するために、またはデバイスが再び接続されるまで録音を停止するために私ができることについて何か提案がありますか?

4

1 に答える 1

1

NAudioの議論には解決策があります。

ここからソースコードの修正(別名フォーク)を入手して、自分でコンパイルする必要があります(x86のみ)。

ボバサウルス:これは、記録デバイスに問題がある場合(一部のWin 7ボックスでケーブルを引っ張ることができないなど)に記録を完全に停止するように、waveinコールバックコードの一部を変更するだけです。これが発生すると、RecordingStoppedイベントが呼び出されます。このイベントハンドラーをメインプログラムのGUIコントローラーに実装しました。これは、WaveIn.DeviceCountが0であることを検出すると、タイマーを開始して、0を超えるまでWaveIn.DeviceCountをポーリングし、記録を再開します。

于 2011-10-31T15:51:41.333 に答える