2017-06-02 26 views
1

私は現在あなたの声を分析するプログラムに取り組んでいます。 マイクからオーディオを録音するWaveInEventを実行するスレッドがあります。 データが利用可能になると(WaveInEventArgsイベントが起動すると)、エンコードされてシリアル化され、アナライザに送信されます。WaveInEventハンドラはどのくらいの頻度で起動しますか?

オーディオファイル(.mp3など)を使用したいと考えています。 は、私はこのようにそれを読んでいる:

byte[] audioFileBytes = File.ReadAllBytes(audioFilePath); 

そしてアナライザに同じようにそれを送信します。

私はいくつかの問題に遭遇しています。オーディオファイルは相手側で処理されません。「ダイナミック」オーディオ入力を使用すると動作します。私はそれがバッファの長さと関係があると思いますが、WaveInEventバッファの長さやWaveInEventArgsイベントの発生頻度を見つけることはできません。 第2に、データは〜2秒で処理され、アナライザ側で受信したデータにタイムスタンプを追加してリアルタイムに取得していましたので、今度はファイル全体に対してタイムスタンプを1つ追加します。 1バイトあたりバイトを送信すると、約2秒で120万のタイムスタンプが得られますが、それでもグラフには印刷できません。グラフは0から始まり、オーディオファイルの長さで終了します(ここでは70秒です私が持っているテスト)、2秒ではありません。

最初のステップとして、「リアルタイムで」オーディオファイルを読み込んで、マイクからのものと同じようにファイルからオーディオを送信することを考えましたが、どうすればいいのかわかりません。

質問:WaveInEventハンドラはどのくらいの頻度で起動しますか?

答えて

1

バッファの長さと関係があります。バッファにオーディオが書き込まれるたびにイベントが発生します。 BufferMillisecondsNumberOfBuffersのプロパティを見てください。録音を開始する前に、これらの値を希望の値に設定することができます。

関連する問題