Flex - Java byte to mp3

柔情痞子 提交于 2019-12-11 13:35:55

问题


I've a problem in converting byte to .mp3 sound file. In my case I do it using FileOutputStream using its write(bytes) method but it just creates a data file with mp3 extension but I cannot play it in any player on my PC.

Note: I'm recording it from Flex Michrophone and send ByteArray to java.

Which libraries should I use to add mp3 sound file headers etc. in java?

UPDATE: I couldn't even convert my raw data to Wave format that is supported by java sound api.. It creates for me sound with recorded sound but with a noise - where's the problem?

Here's my code for 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")); 

What's wrong with my AudioFormat??? And which one do I have to use in MP3 case ?!

Urgent help! Any help will be highly appreciated!


回答1:


Just writing the raw bytes to a file with the name extension .mp3 doesn't magically convert the data to the MP3 format. You need to use an encoder to compress it.

A quick google search found LAMEOnJ which is a Java API for the popular LAME MP3 encoder.



来源:https://stackoverflow.com/questions/12424659/flex-java-byte-to-mp3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!