2017-02-18 37 views
1

ASIOデバイスに直接オーディオを再生しているときに、一部のASIOデバイスで発生するようなバグを探していました。終了に達する前にWAVオーディオが停止していない場合、アプリケーションはハングし、最後のオーディオの急速なブリップを連続して再生します(スタッター効果のように聞こえる)。その時点で、UIスレッドがハングアップし、アプリケーションを強制的に閉じる必要があります。NAudio ASIO一部のデバイスで再生がハングする

この問題は、NAudioのgithubサイトから提供されている「ASIO Direct Demo」を使用して再現できます。デモにWAVファイルを開いて再生するだけです。オーディオが終了すると、アプリケーションがハングします。

私はこの問題をテストし、M-Audio M-Track MKIIではなくBehringer X-Air x18で発生することを確認しました。誰かがこのバグを回避する方法を見つけたのだろうか?ありがとうございました。

PS - NAudioは驚異的なフレームワークであり、Mark Heath(著者)は、受信料の価値があるpluralsightに関する素晴らしいチュートリアルを用意しています。

+0

サイドノートとして...私の現在の回避策は、現在の位置が全体の位置に近ければオーディオを停止するウォッチャースレッドをスピンオフすることですが、よりエレガントな方法があることを望んでいました。 –

答えて

0

ASIOの自動停止に関する問題が報告されている人がいます(入力の最後に到達し、ASIOコールバックからの再生を停止しようとする)。そのため、単純な回避策の1つとして、終わりのないストリームをAsioOutに渡して、オーディオの最後を過ぎていることを検出してから、外部からの再生を停止します。

+0

こんにちはマーク、素早い対応と素晴らしいフレームワークに感謝します。私は別の投稿で同様の反応を見ましたが、終わりのないストリームの実装を見つけることができませんでした。どのようにして行うことができるかを記述したブログ投稿または回答がありますか? ストリームを作成し、それを既存の出力チャンネルのmultiplexingaudioproviderに渡すことができればと願っています。 –

+0

NAudioのいくつかのストリームは決して終わりません。 WaveChannel32はそのように設定することができ、私は混合ストリームの大部分も考えています。自分のIWaveProviderを書くのは本当に簡単ですが、Readメソッドはソースから読み込み、ソースが終了した後にただ静かに戻ります。 –

関連する問題