2017-03-27 10 views
1

私がしようとしているのは、マイクからTargetDataLineクラスを介してオーディオをキャプチャし、ソケットで送信し、SourceDataLine経由で別の側で再生することです。問題は、私がキャプチャだとマイクでのみサポートされています。Java Convert AudioFormat

AudioFormat format = new AudioFormat(48000, 16, 1, true, true); 

を、私はそれをプレイしてるスピーカーは、のみサポートしています。

AudioFormat format = new AudioFormat(32000, 16, 2, true, true); 

私は直接は48kHzを取得し、それを押すと32khzのオーディオフォーマットでは、音が響きます.48kHzのモノラルサウンドを32kHzのステレオに変換する方法はありますか?

答えて

0

Javaにオーディオファイル形式の変換が組み込まれている場合は、オーディオチュートリアルスレッドの「Using Files and Format Converters」からそのことを知ることができます。それは手動で行う必要がある場合

は、あなたが並列に入力と出力の行を実行する場合は、特にコメント

// Here, do something useful with the audio data that's 
    // now in the audioBytes array... 

でポイントに注目し、そのページ上の最初のコード例をご覧ください線形補間を使用して48000行からデータを取り出し、32000行にポストすることができます。比率は3:2です。

したがって、入力の3つのPCMデータポイントについては、出力の2つのPCMデータポイントを計算します。

入力の場合、[0]から[0]へ、1/2と[2]/2の和は1になります。

モノからステレオに変換する値を複製します。