0

私は javasound を使用しており、形式の AudioInputStream を持っています PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian

target_formatAudioSystem.getAudioInputStream(target_format, original_stream)PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian

read() 呼び出しのたびにこのストリームを手動で変換することは可能ですか? はいの場合、どのように?
一般に、2 つの形式を比較して、変換が可能かどうかを判断するにはどうすればよいでしょうか?

4

1 に答える 1

0

read()を呼び出すたびに、このストリームを手動で変換することはできますか?はいの場合、どのように?

何をしたいのかわかりませんが、これは不要のようです。実際にオーディオ入力ストリームを作成したら、データをバッファリングし、フォーマット変換を行う方が理にかなっています。

データ転送サイズを節約するためにステレオからモノラルに切り替えているように見えます。適切なエンコーディング(GSM、mu-law、またはA-law)で同じことを実現できます。この変換を実現するにはプラグインが必要になる場合があることに注意してください。詳細はこちら: Javaサウンドリソース

各read()呼び出しの後にストリームを変換することは可能ですが、ストリームが変換できない場合、変換することはできません。

一般に、2つの形式を比較して、変換が可能かどうかを判断するにはどうすればよいですか? 2つの形式を定義し、AudioSystemを使用して変換が可能かどうかを確認します。

boolean bConversionSupported = AudioSystem.isConversionSupported(targetFormat, sourceFormat);
于 2010-05-21T12:25:16.553 に答える