1

バイトを.mp3サウンドファイルに変換する際に問題が発生しました。私の場合、write(bytes)メソッドを使用してFileOutputStreamを使用して実行しますが、mp3拡張子のデータファイルを作成するだけですが、PCのどのプレーヤーでも再生できません。

注:Flex Michrophoneから記録し、ByteArrayをJavaに送信しています。

Javaでmp3サウンドファイルヘッダーなどを追加するには、どのライブラリを使用する必要がありますか?

更新:生データをJavaサウンドAPIでサポートされているWave形式に変換することさえできませんでした。録音されたサウンドでノイズのあるサウンドが作成されます。問題はどこにありますか?

これがwaveの私のコードです:

AudioFormat format = new AudioFormat(Encoding.PCM_SIGNED, 44100, 16, 2, 2, 44100, true);

ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
AudioInputStream stream = new AudioInputStream(bais, format, bytes.length/format.getFrameSize());


AudioSystem.write(stream, AudioFileFormat.Type.WAVE, new File(path+"zzz.wav")); 

私のAudioFormatの何が問題になっていますか?そして、MP3の場合はどれを使用する必要がありますか?!

緊急の助け!どんな助けでも大歓迎です!

4

1 に答える 1

2

生のバイトを拡張子 .mp3 のファイルに書き込むだけでは、魔法のようにデータが MP3 形式に変換されるわけではありません。エンコーダーを使用して圧縮する必要があります。

Google で簡単に検索すると、人気のあるLAME MP3 エンコーダーの Java API であるLAMEOnJが見つかりました。

于 2012-09-14T12:44:01.623 に答える