JLayer Mono Mp3 para PCM decodificação

Atualmente estou trabalhando em decodificação de mp3 com o javalayer 1.1.

Então eu quero receber os dados PCM brutos dos meus 44100 Hz, 16 bits, Mp3s. Funciona perfeitamente com mp3s estéreo, mas tenho problemas estranhos com mono mp3s.

Aqui algum código.

InputStream data = c.getResources().openRawResource(resId);
Bitstream bitstream = new Bitstream(data);
Decoder decoder = new Decoder();
while(thereIsData) {
  Head frameHeader = bitstream.readFrame();
  SampleBuffer buffer = (SampleBuffer) decoder.decodeFrame(frameHeader, bitstream);
  short[] pcmBuffer = buffer.getBuffer();

  // Do some stuff with pcm (For example creating a wav file )

  bitstream.closeFrame();
}

buffer.getChannelCount () == 1, buffer.getFrequency () == 41000

Então ... O problema é. Se eu criar um canal mono de 44100 Hz, WaveFile de 16 bits e colocá-lo no Audacity para ver as ondas. O som é periodicamente 0, como: (som 200ms) ... (200ms NoSound) ... (som 200ms) ... (200ms NoSound)

Isso vale também para os dados pcm antes de escrever para .wav ... (Yeahi syso todas as coisas)

Então, pode-se pensar, bem, tem que haver zero-frames ou sth. lá ... Então eu cortei todos os quadros com apenas 0 valores nele. Isso resulta em intervalos zero ligeiramente mais curtos no arquivo wav. Significa para mim, deve haver quadros zero parciais. Então eu cortei todos os valores zero dos dados pcm ... E por mais estranho que pareça, isso funcionou. O arquivo soa bem.

Mas isso não pode ser a solução. Eu ainda não sei porque existem esses falsos valores zero. E eu preciso do silêncio no meu mp3 também.

Eu apreciaria cada dica de explicação. obrigado

questionAnswers(2)

yourAnswerToTheQuestion