안녕하세요.
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();
}