Hallo Zusammen,
ich schreibe gerade ein Java Programm, in dem ein AudioInputStream grafisch dargestellt werden soll.
Nun habe ich in einer JavaSoundDemo von Sun ein passendes Beispiel gefunden. Es funktioniert auch soweit alles, nur habe ich noch etwas Verständnisschwierigkeiten was den Code angeht. Vielleicht könnt ihr mir da auf die Sprünge helfen.
16Bit = 2Byte ist mir klar, und somit kann ich auch nlengthInSamples nachvollziehen. Wie ich zu LSB und MSB komme auch. Aber mit der nächsten Zeile komme ich nicht ganz klar:
Da wird ein Bitshift nach links um 8 stellen gemacht und dann? Und vor allem warum? Vielleicht könnt ihr mir mit einem kleinen Beispiel die Unklarheiten beseitigen.
Gruß
Dethix
ich schreibe gerade ein Java Programm, in dem ein AudioInputStream grafisch dargestellt werden soll.
Nun habe ich in einer JavaSoundDemo von Sun ein passendes Beispiel gefunden. Es funktioniert auch soweit alles, nur habe ich noch etwas Verständnisschwierigkeiten was den Code angeht. Vielleicht könnt ihr mir da auf die Sprünge helfen.
Java:
int[] audioData = null;
if (format.getSampleSizeInBits() == 16)
{
int nlengthInSamples = audioBytes.length / 2;
audioData = new int[nlengthInSamples];
if (format.isBigEndian())
{
for (int i = 0; i < nlengthInSamples; i++)
{
/* First byte is MSB (high order) */
int MSB = (int) audioBytes[2*i];
/* Second byte is LSB (low order) */
int LSB = (int) audioBytes[2*i+1];
audioData[i] = MSB << 8 | (255 & LSB);
}
}
else
{
for (int i = 0; i < nlengthInSamples; i++)
{
/* First byte is LSB (low order) */
int LSB = (int) audioBytes[2*i];
/* Second byte is MSB (high order) */
int MSB = (int) audioBytes[2*i+1];
audioData[i] = MSB << 8 | (255 & LSB);
}
}
16Bit = 2Byte ist mir klar, und somit kann ich auch nlengthInSamples nachvollziehen. Wie ich zu LSB und MSB komme auch. Aber mit der nächsten Zeile komme ich nicht ganz klar:
Java:
audioData[i] = MSB << 8 | (255 & LSB);
Da wird ein Bitshift nach links um 8 stellen gemacht und dann? Und vor allem warum? Vielleicht könnt ihr mir mit einem kleinen Beispiel die Unklarheiten beseitigen.
Gruß
Dethix