Многоканальная запись USB с помощью Java Sound API?

Я пытаюсь записать / обработать какой-то звук с трех USB-микрофонов с помощью Java Sound на Snow Leopard (но могу переключиться на Windows, если это исправит). Проблема в том, что когда я пытаюсь использовать микшер, соответствующий USB-микрофону, Java Sound сообщает мне, что линия не поддерживается. java.lang.IllegalArgumentException: Строка не поддерживается: интерфейс Формат поддержки TargetDataLine PCM_SIGNED 96000,0 Гц, 8 бит, стерео, 2 байта / кадр,

... когда я прошу его выбрать микшер USBMIC:

  Mixer mixer = AudioSystem.
          getMixer(mixerInfo[1]);

Я попытался сопоставить аудиоформат с точными характеристиками микрофонов (16 бит, 44100 Гц, стерео), и это не помогло не имеет никакого значения.

Проблема возникает здесь:

 final TargetDataLine line = (TargetDataLine)
        mixer.getLine(info);

Похоже, микшер и TargetDataLine не нравятся друг другу. Есть ли способ заставить этих двоих «подойти» и поладить?

Микрофоны, которые я использую, по общему признанию, немного странные. Они были созданы для использования в видеоигре с караоке SingStar. Сами микрофоны имеют стандартные линейные моно разъемы, которые подключаются к небольшому концентратору (два к концентратору), который преобразует их в один штекерный разъем USB. Однако, помимо странности, они, кажется, отлично работают с Audacity в качестве отдельных каналов, поэтому многоканальная запись с ними явно возможна, просто может не на Яве.

Я также рассматривал возможность использования такой программы, как Soundflower, которая делит звук между разными программами. Однако я не уверен, что это сработает, поскольку я не вижу, как сделать входы USB-микрофонов в Soundflower, а затем передать их в Java. Быстрый эксперимент показал мне, что я могу записывать звук в Audacity с микрофонов, передавать его через Soundflower, а затем обрабатывать в моей программе Java. Тем не менее, я бы хотел, чтобы все это происходило в реальном времени на Java.

Кто-нибудь знаком с такого рода проблемами?

45
задан Bill the Lizard 22 May 2011 в 00:41
поделиться