2012-09-14 2 views
1

바이트를 .mp3 사운드 파일로 변환하는 데 문제가 있습니다. 필자는 필자의 경우 write (bytes) 메서드를 사용하여 FileOutputStream을 사용하지만 파일 확장자가 mp3 인 데이터 파일을 만들지 만 내 PC의 모든 플레이어에서 재생할 수는 없습니다.플렉스 - 자바 바이트를 mp3로

참고 : Flex Michrophone에서 녹음하고 ByteArray를 java에 보냅니다.

자바에서 mp3 사운드 파일 헤더 등을 추가 할 때 사용해야하는 라이브러리는 무엇입니까?

업데이트 : 자바 사운드 API가 지원하는 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 케이스에서 어느 것을 사용해야합니까?!

긴급한 도움! 어떤 도움을 주시면 감사하겠습니다!

답변

2

원시 바이트를 .mp3 확장명의 파일에 쓰면 마술처럼 데이터를 MP3 형식으로 변환하지 않습니다. 압축하기 위해 인코더를 사용해야합니다.

인기있는 LAME MP3 인코더 용 Java API 인 빠른 Google 검색은 LAMEOnJ입니다.

+0

실제로 제가 필요로하는 것은 시스템 라이브러리를 사용하지 않는 lib입니다. 왜냐하면 내가 Mac OS에서 개발을하고 내가하고있는 프로그램이 윈도우와 리눅스에서 작동해야하기 때문입니다! 시스템 라이브러리를 사용하는 이런 종류의 라이브러리는 테스트에 많은 시간을 낭비 할 것입니다. –

+0

최근에 저는 lamejb 라이브러리가 절름발이 래퍼 인 것을 발견했습니다. 시스템에서 절름발이 라이브러리가 필요하지 않습니다. 그러나 거기에 예제가 어디서나 다운로드 한 지퍼 아래의 examples 폴더에있는 것들은 내가별로 이해할 수없는 테스트 클래스 일 뿐이다. –

관련 문제