1

NAudioのデモアプリケーション「オーディオファイルの再生」を見てきました。このデモに欠けているのは、オーディオファイルの再生中にサンプルを取得する方法です。

新しいサンプルが必要なときはいつでも、コールバックを使用してBufferedWaveProviderにサンプルを入力することはどういうわけか可能だと思いましたが、その方法がわかりません。

私の他の(好ましくない)アイデアは、サウンドカードに書き込まれる前にサンプルを入手できるDirectSoundOutなどの特別なバージョンを作成することです。

何か案は?

4

1 に答える 1

1

NAudioでのオーディオファイルの再生では、オーディオファイルから始めて、出力デバイスに到達するまでにさまざまな変換(音量の変更など)を経て、オーディオパイプラインを構築します。NAudioDemoは、実際には、波形を描画し(ボリューム調整前)、ボリュームメーターを表示する(ボリューム調整後)ことにより、サンプルにアクセスする方法を示しています。

たとえば、IWaveProviderまたはの実装者を作成し、ISampleProviderそれをパイプラインに挿入できます。次に、このReadメソッドでソースから読み取り、サンプルを処理、検査、またはディスクに書き込んでから、パイプラインの次のステージに渡します。AudioPlaybackPanel.CreateInputStreamデモでこれがどのように行われるかを確認してください。

于 2012-09-13T06:10:46.360 に答える