마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

m4a 파일을 mp3로 저장하기

0 추천
안녕하세요.

m4a 파일을 읽어서 mp3 파일로 저장하려고 합니다.

인코더는 SimpleLame 이란 라이브러리를 임포트했구요.

아래 코드와 같이 해봤는데요.

그런데 원본인 m4a 파일이 30초 길이면

mp3 파일은 15초 길이가 되구요.

원본에서 나는 소리가 mp3 파일에서는 전혀 나지 않습니다.

보시고 어디를 어떻게 수정해야하는지 고수님들의 도움을 요청합니다.

 

private void convertM4a2Mp3File(String m4aFullName) throws IOException {

        int buffSize = AudioRecord.getMinBufferSize(32000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);

 

        SimpleLame.init(32000, 1, 32000, 32);

 

    String mp3FullName = m4aFullName.replace(".m4a", ".mp3");

    presentFile = mp3FullName;

 

    FileOutputStream mp3fileFo  = new FileOutputStream(mp3FullName);

                

    FileInputStream m4afileFi = new FileInputStream(m4aFullName);

    //ByteArrayOutputStream baos = new ByteArrayOutputStream();

        

    byte[] b = new byte[buffSize];

    short[] buffer = new short[buffSize];

    byte[] mp3buffer = new byte[(int) (7200 + buffSize * 2 * 1.25)];

        

    int encResult = 0;

    for (int readNum; (readNum = m4afileFi.read(b)) != -1;) {

        //baos.write(b, 0, readNum);

        encResult = SimpleLame.encode(buffer, buffer, readNum, mp3buffer);

        mp3fileFo.write(mp3buffer, 0, encResult);

    }

        

    //close file /

    if (presentFile.equals("")) presentFile = getFileName();

    m4afileFi.close();

    //baos.close();

    mp3fileFo.close();

}
단추 (220 포인트) 님이 2017년 5월 31일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...