Возможно ли преобразовать этот поток вручную после каждого вызова read ()? И если да, то как?
Я не уверен, что вы хотите сделать, но это кажется ненужным. Имеет больше смысла буферизовать ваши данные и выполнить преобразование формата после того, как вы фактически создадите аудиовход.
Мне кажется, что вы переключаетесь со стерео на моно, чтобы попытаться сохранить размеры передачи данных. Вы можете добиться того же с надлежащим кодированием (в GSM, mu-law или A-law). Обратите внимание, что вам может понадобиться плагин для достижения этой конверсии. Больше информации здесь:
Ресурсы Java Sound
Возможно преобразовать поток после каждого вызова read (), но если ваш поток не может преобразовать, он не может преобразовать.
В общем, как вы можете сравнить два формата и определить, возможно ли преобразование?
Вы определяете два своих формата и используете AudioSystem, чтобы проверить, возможно ли преобразование.
boolean bConversionSupported = AudioSystem.isConversionSupported(targetFormat, sourceFormat);