問題タブ [naudio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3226 参照

c# - NAudio を使用して複数の wav ファイルを一度に再生する際の音質の問題

私の目的はこれです: 私の .NET プログラムのユーザーが効果音用に独自の .wav ファイルを選択できるようにすることです。これらの効果は同時に再生される場合があります。NAudio は私の最善の策のように思えました。

WaveMixerStream32 を使用することにしました。初期の課題の 1 つは、ユーザーがさまざまな形式の .wav ファイルを持っていたため、それらを WaveMixerStream32 と一緒にミックスできるようにするために、それらを共通の形式に「正規化」する必要があったことでした。従うべき良い例を見つけることができなかったので、私の問題は、この部分を間違って実行した結果であると思われます。

私の問題は、一部のサウンドが再生されると、最後に非常に目立つ「クリック」音が発生することです。私はこれを自分で再現できます。

また、私のユーザーは、サウンドがまったく再生されない、または最後まで「スクラッチ」することがあると不満を漏らしています。開発ではこれを再現できませんでしたが、実稼働環境ではこれを自分で聞いたことがあります。

Windows Media と VLC を使用してユーザーの wav ファイルを自分で再生したので、ファイルが破損していないことはわかっています。NAudioでそれらをどのように使用しているかに問題があるに違いありません。

私の NAudio のバージョンは v1.4.0.0 です。

これが私が使用したコードです。ミキサーをセットアップするには:

驚いたことに、ここで "NumberOfBuffers" を 2 に設定すると、1 秒に数回 "カチカチ" という音が聞こえ、音質がひどいことがわかりました。

サウンド ファイルを初期化するには、次のようにしました。

AudioSample は私のクラスです。そのコンストラクターは、wav ファイル形式の「正規化」を担当します。次のようになります。

基本的に、AudioSample はその _channelStream オブジェクトに委譲します。AudioSample を再生するには、コードで「Position」を 0 に設定します。これを行うこのコードは、UI スレッドにマーシャリングされます。

これはほとんどうまくいきます。複数の音を同時に鳴らすことができます。残念ながら音質は上記の通り悪いです。誰でも理由を理解するのを手伝ってもらえますか?

0 投票する
1 に答える
647 参照

c# - NAudio を使用したオーディオ形式とオーディオ合成を開く

  1. Naudio と C# を使用して、さまざまなオーディオ形式 (.mp3 と .wav を除く) を開くにはどうすればよいですか?

  2. Naudio と C# を使用せずにオーディオ合成を作成するにはどうすればよいですか?(オーディオ合成に必要な音の​​周波数やその他のデータを取得する方法を意味します)。

PS私はこのチュートリアルシリーズを見てきました

http://opensebj.blogspot.com/2009/02/introduction-to-using-naudio.html

そしてこれ

http://www.giawa.com/tutorials/?p=19o

0 投票する
4 に答える
2296 参照

c# - 3 つの MP3 サウンド ファイルを同期して再生すると、奇妙な例外が発生します。

私はこれをしたいと思います:

問題は、私が時々試してみると、エラーがスローされることです:

CallbackOnCollectedDelegate が検出されました メッセージ: タイプ 'NAudio!NAudio.Wave.WaveInterop+WaveCallback::Invoke' のガベージ コレクション デリゲートでコールバックが行われました。これにより、アプリケーションのクラッシュ、破損、データ損失が発生する可能性があります。デリゲートをアンマネージ コードに渡す場合、デリゲートが呼び出されないことが保証されるまで、マネージ アプリケーションによって保持される必要があります。

更新:これを試しましたが、エラーはまだ3回発生します。このコードを読んでみてください:

0 投票する
1 に答える
5613 参照

.net - Nオーディオ ネットワーク ストリーミング

NAudio でいくつかの mp3 ファイルを再生するアプリがあり、このサウンドをネットワーク経由で別の PC に送信しようと数日を費やしましたが、それを行うためのより良い方法について迷っています。バッファにアクセスするために使用する必要があるクラスと、そのバイト配列を再構築してリモートで再生する方法は? mp3Frames を送信するのが最善であるか、生データまたは pcm データを送信する方がよいでしょうか?

私は本当に迷っています。どんな助けもいただければ幸いです。ありがとう

0 投票する
1 に答える
1815 参照

naudio - NAudio を使用して .wav を読み込んだ後、プログラムを終了するとエラーが発生する

先日、NAudio を見つけたばかりで、それで遊んでいます。ロード ボタン (特定の .wav ソングをロードする) と、サウンドを再生、一時停止、停止、フェードインするためのボタン (タイマーと徐々に増加するボリュームを使用する独自の追加機能) を備えた単純な Windows フォーム プログラムを作成しました。音をフェードアウトします。ボリュームを処理するためのトラックバー コントロールもあります。すべての NAudio のものを入れるためのラッパー クラスを作成し、フェードイン/アウトやサウンドの開始時または一時停止時のイベント通知などの追加機能を追加しました。

さて、すべてが言った、それはうまくいきます。プログラムは、正しくロード、再生、一時停止、停止、およびフェードインとフェードアウトします。ボリューム トラックバーは、再生中の曲のボリューム レベルを正しく反映します。これだけでうまくいきますが、2 つの問題があります。

まず、[ロード] ボタンをクリックしてサウンドをロードし、必要な (またはしない) すべての再生を行った後、プログラムを終了すると、次のポップアップ エラー メッセージ (「アサーションに失敗しました」) が表示されます。 Dispose は AcmStreamHeader.Finalize() で呼び出されませんでした」。これは「中止、再試行、無視」ポップアップの 1 つですが、数秒後に消えてプロジェクトが終了します。(注: ロード機能は、DirectSoundOut を作成し、サイトの NAudio サンプルから直接取得した CreateInputStream を呼び出します。また、定義されたイベントのイベント ハンドラーを設定しますが、それはおそらく問題ではありません。)

クラス デストラクタで、次の呼び出しを行います。

しかし、私はまだエラーが発生します。これは大きな問題であり、別のスレッドで別の質問をします。なぜこれが起こっているのか、どうすればそれを止めることができるのでしょうか?

Windows 7 32 ビットで VS 10 を実行しています。

0 投票する
1 に答える
2462 参照

vb.net - NAudio を使用した非 PCM 生オーディオのストリーミング

私はこれを NAudio で機能させることに夢中になっているので、これを回避する方法があれば教えてください。WaveOut を介して再生しようとしているシリアル デバイスから生のオーディオをストリーミングしています。

試行 1:

このコードは機能しますが、小さな問題があります。実際のオーディオ ストリームは生の PCM ではなく、生の MuLaw です。チーズおろし器でベートーベンの第5番のようにコンパンディングを演奏します。を に変更するWaveFormatWaveFormatEncoding.MuLaw、生のオーディオで RIFF ヘッダーがないため、不正な形式の例外が発生します。

そこで、PCM への変換に移りました。

試行 2:

ここでCreatePcmStream、ストリームの長さを取得しようとして (CanSeek = false であっても)、失敗します。

試行 3

それもヘッダーがないことに苦しんでいるようです。

このすべてで見逃したマイナーなものがあることを願っています。デバイスは使用時にのみオーディオをストリーミングし、それ以外の場合はデータを受信しません - (1) で処理されるケース。

0 投票する
1 に答える
1810 参照

.net - NAudio および Midi ファイルの読み取り

NAudio ページ (http://naudio.codeplex.com/documentation) で提案されたので、ここに質問を投稿します。

NAudio を使用して .mid ファイルを読み込んだので、適切なタイミングでトラックのイベントをステップ実行したいと思います。「NoteOn」イベントに到達したら、コンソールに「Beep」などを書き込みたいと思います。このようにして、.mid ファイルの単純なアクティビティを表示できました。詳細に言えば、ファイルのイベントを時間内に適切に進めるにはどうすればよいですか?

vsC# 2008 を使用していますが、NAudio の .dll は正常に動作しています。ライブラリを使用して midi ファイルを読み込んで、トラック情報とすべてを抽出できますが、時間に関してそれを使用する方法がわかりません。提供された「絶対時間」または「デルタ時間」の値を使用して何かを行う必要があると考えています。お手伝いありがとう。

編集:非常に役立つ回答の後、意図したことを行う方法を理解することができました。

これを行う別の方法を知っている人がいたら、教えてください。時間差のためにスリープを使用すると、何らかの理由で応答が遅くなります。ただし、これはうまくいくようです。また、「convertAbsoluteTimeToMilliseconds」はマシンに依存していると確信しています。

0 投票する
1 に答える
316 参照

c# - NaudioでClapperソフトウェアを作成する

マイクを介して拍手した後にリッスンするソフトウェアを作成したいと思います。

私の最初の実装は、大音量の音が聞こえたときにソフトウェアに警告を表示させることです。

しかし、誰かが正しい方向に私を助けることができるかどうか疑問に思っていましたか?

0 投票する
3 に答える
6970 参照

c# - NAudio C#を使用して再生速度を変更する方法

メディアプレーヤーを実装し、NAudioを使用してファイルを再生しています。サウンドの再生中に(2Xまたは4X)のように再生速度を上げる方法はありますか?コードサンプルをいただければ幸いです。

AdvanceCheersに感謝します。