問題タブ [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.
.net - C# を使用してストリームからオーディオを再生する
データを一時的にディスクに保存せずに、たとえばWebRequest から返されたSystem.IO.Streamからオーディオ (MP3 など) を直接再生する方法は C# にありますか?
NAudioを使用したソリューション
NAudio 1.3を使用すると、次のことが可能になります。
- URL から MP3 ファイルを MemoryStream にロードする
- MP3 データの読み込みが完了したら、Wave データに変換します。
- NAudioの WaveOut クラスを使用してウェーブ データを再生する
半分ロードされた MP3 ファイルを再生できればよかったのですが、 NAudioライブラリの設計上、これは不可能のようです。
そして、これは仕事をする関数です:
c# - .NETでの正確なタイミング
この質問を見たところ、回答の1つは、System.Diagnostics.Stopwatchはパフォーマンスの診断にのみ使用され、本番コードでは使用されないことを示しています。
その場合、.NETで正確なタイミングを取得するための最良の方法は何でしょうか?私は現在、NAudioのMIDI出力機能を使用して非常にシンプルなMIDIシーケンサーを構築する初期段階にあります。MIDIメッセージを(たとえば)1/10に揃えて、できるだけジッターを少なくして送信できるようにしたいと思います。これは実行可能ですか、それともコンテキスト切り替えのようなものが私の一日を台無しにしますか?
Stopwatch
私は現在、コンソールアプリに、150bpmで1/16分音符のストリームを生成するときにジッターを継続的に呼び出して計算するコードをいくつか持っています。この状況では、ジッタは非常に低くなります。ただし、これを別のスレッドに移動するので、それが当てはまるかどうかはわかりません。
c# - Naudio - 'WaveOut' には '3' 引数を取るコンストラクタが含まれていません
この質問は、以前のスレッドPlay mp3 from internet without FileOpenDialog から派生したものです。
誰かがこれについて何か知っていることを本当に願っています。ローカルに保存されたファイルを再生する代わりに、WebRequest を使用してダウンロード ストリームを開始し、ストリームを再生するように言われました。ただし、PlayMp3FromUrl のコードを使用しようとすると、次のエラーが発生します。
「'NAudio.Wave.WaveOut' には、'3' 個の引数を取るコンストラクターが含まれていません」
次の行でコンパイルが失敗します。
これは完全なコードです:
WaveOut がどの引数を取るかを調べるのを手伝ってくれる人はいますか?
編集: おそらく WaveOut.cs を見たいと思うでしょうが、かなり長いです。ここでWaveOut.csを見てください。
c# - NAudio で録音デバイスを列挙する
NAudio を使用して、コンピューター上のすべての録音デバイスのリストを取得するにはどうすればよいですか? 録音するときは、使用したいデバイスのインデックスを指定する必要がありますが、それがどのデバイスであるかを知る方法はありません。マイク、ステレオミックスなどから選択できるようにしたいです。
c# - winmm.dll を使用する場合、Windows のサウンド デバイスの順序は何によって決まりますか?
NAudio を使用して複数のサウンド出力アプリケーションを作成しようとしています。8 つの USB サウンド カードがインストールされています。NAudio では 8 つすべてを使用できますが、どのデバイス インデックスがどのカードであるかを判断するためのパターンがわかりません。
カードはさまざまなハードウェアに接続されるため、使用しているカードを確認することが重要です。
WMI を使用して情報をポーリングしようとしましたが、サウンド デバイスの順序を決定する情報が見つからないようです。
更新: この問題に関する情報を含めるのを忘れていました。サウンド カードはすべて、12 ポート ハブを介して接続された USB サウンド カードです。
c# - NAudioを使用して変換されたMP3ファイルから直接サンプルを読み取る
NAudioを使用して(変換された)MP3ファイルからPCMサンプルを読み取ろうとしていますが、Read
メソッドが毎回ゼロ(EOFを示す)を返すため失敗します。
例:単一の16ビットサンプルを読み取ろうとするこのコードは、常に「0」を出力します。
出力:
しかし、WAVファイルから読み取るこのバージョンは正常に機能します(iTunesを使用してMP3をWAVに変換したので、同様のサンプルが含まれているはずです)。
出力:
ここで何が起こっているのですか?両方のストリームのウェーブ形式は同じであるため、同じAPIを使用してサンプルを読み取ることができると思います。プロパティを設定Position
しても役に立ちません。
c# - WaveChannel32は私に例外を与えます:オフセットと長さは範囲外でした
NAudioライブラリでは、WaveMixerStream32を使用してオーディオをミキシングしようとしているため、WaveChannel32を使用して適切な形式でストリームをフィードしています。次のメッセージで例外が発生しました。
オフセットと長さが配列の範囲外であるか、カウントがインデックスからソースコレクションの最後までの要素の数よりも大きい。
エラーをスローするための最小限の例では、WaveMixerStream32がまったく含まれていなかったため、WaveChannel32の使用方法に問題があるという結論に達しました。コードは次のとおりです。
audio.wavは問題なく生成されます。audio32.wavは58バイトであり、その行は例外をスローしました。
なにが問題ですか?
c# - 2 つの wavefilereader を連続して再生するにはどうすればよいですか?
全体的なサウンド ストリームとして再生するために、ネットワーク経由で送信される一連のオーディオ wav ファイルを再生しようとしています。NAudio を使用して、これらのチャンクのセットを音切れやブリップなしで次々に再生するにはどうすればよいですか? 1 つのファイルを再生することはできますが、1 つのサウンド ファイルが終了したことを検出する方法や、2 つ目のサウンド ファイルを 1 つ目に追加する方法がわかりません。
現在、2 つのファイルを再生しようとすると、1 番目のトラックがすぐに途切れて、最後のサウンド トラックのみが正常に再生されます。
どんな助けでも大歓迎です。
silverlight - Silverlight アプリケーションの Naudio または FMOD ライブラリ
マイクからオーディオを取得し、それを書き込んで「オンフライ」でストリーミングする必要があります。宛先マシンはこのデータを読み取り、再生します。すべてが Silverlight アプリケーションになります。私の目的のためにNaudioライブラリまたはFMODを使用できますか?
事前にthx!