So ^^ Das ist mir jetzt peinlich aber ich habe einen doofen Fehler gemacht...
Der Header scheint zu funktionieren, also ich bekomme keine Fehlermeldung mehr. Nur leider höre ich im Moment nur Rauschen aber vielleicht lässt sich das schnell beheben.
Nun zu dem Fehler. Ich lese in regelmäßigen Abständen ein short[4096] Array von dem Mikrofon. Dieses Array füge ich dann zu einer ArrayList<short[]> hinzu.
Ich habe meiner Methode als totalAudioLength array.size() * 2 übergeben. Richtig war array.size() * bufferSize * 2 ...
ärgerlich ärgerlich ärgerlich...

Wegen so einer kleinen Sache mal wieder ein paar Stunden verschwendet und noch die Zeit von Anderen in Anspruch genommen...
@d03jo4n: Danke für die Hilfe =)