0
mp3 인코딩/디코딩을 사용하는 응용 프로그램을 개발 중입니다. 원칙적으로 대부분의 파일에서 올바르게 작동하지만 몇 가지 예외가 있습니다. 이 파일에 누락 된 헤더가 있음을 발견했습니다. 디코딩을 시도 할 때 배열 예외를 벗어납니다. 나는 두 가지 방법을 사용했으나 둘 다 실패했습니다.디코딩 된 mp3 스트림을 읽을 수 없습니다.
제 :
DecodedMpegAudioInputStream dais = (DecodedMpegAudioInputStream) AudioSystem.getAudioInputStream(daisf, ais);
byte[] audioData = IOUtils.toByteArray(dais);//exception here
둘째 :
ByteOutputStream bos = new ByteOutputStream();
// Get the decoded stream.
byte[] byteData = new byte[1];
int nBytesRead = 0;
int offset = 0;
int cnt=1;
while (nBytesRead != -1) {
System.out.println("cnt="+cnt);
nBytesRead = dais.read(byteData, offset, byteData.length);//exception here at first loop
if (nBytesRead != -1) {
int numShorts = nBytesRead >> 1;
for (int j = 0; j < numShorts; j++) {
bos.write(byteData[j]);
}
}
cnt+=1;
}
byte[] audioData = bos.getBytes();
는 스트림 콘텐츠가 연단 때문에 헤더 또는 구조에 문제가있을 것 같다/바이트. 그러나 그것은 대담성과 ffplay로 열 수 있으므로 해결 방법이 있어야한다고 생각합니다. 어떤 아이디어가 그것을 상쇄하는 방법?