2009-11-08 3 views
1

Я работаю с java, пытаясь использовать AudioFormat Class. У меня есть следующий фрагмент кода:Java Class AudioFormat: порядок байтов

AudioFormat Baseformat = input.getFormat(); 

AudioFormat Finalformat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 
Baseformat.getSampleRate(), 
16, Baseformat.getChannels(), Baseformat.getChannels()*2, 
Baseformat.getSampleRate(),false); 

AudioInputStream stream1 = AudioSystem.getAudioInputStream(
Finalformat, input); 

numBytesRead = stream1.read(audioBytes) 

Где audioBytes - это массив, в котором хранятся байты данных. Мне нужно знать, как эти байты организованы. В Finalformat я указываю PCM enconding, stereo и 16 бит на образец. Это означает, что в течение заданного момента времени имеется 2 выборки (по 1 для каждого канала), и каждый образец имеет 2 байта. Как расположены эти байты?

Если audioBytes = AABBCCDD, какие байты принадлежат каждому каналу и каков порядок байтов каждого образца? Примером объяснения, которое я ищу, является: AA BB - левый канал; AA - младший байт.

Спасибо всем, кто читает это.

ответ

2

Последний false в вашем конструкторе AudioFormat указывает на небольшой порядковый номер байта (true будет большим endian). С вашим кодом и примером AA BB, AA будет младшим байтом. Если вы передадите true конструктору, BB будет младшим байтом.

+0

Итак, AABB является каналом 1 и каналом CCDD2, верно? Благодаря! – dedalo

+0

Да, это так. – jarnbjo

Смежные вопросы