Я написал код для захвата звука с помощью API JavaSound.
Она начинается так:Захват аудио в не эксклюзивном режиме с помощью API JavaSound
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
audioFormat);
TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
line.open();
Однако, как только GetLine() вызывается, другие приложения не могут начать захватывать звук любого-больше.
Другой способ, getLine() не работает, если запущены другие приложения для захвата звука.
Как правило, я могу использовать звукозапись во время сеанса Skype, это означает, что захват звука не обязательно должен быть эксклюзивным.
Я бы хотел, чтобы мое приложение было не эксклюзивным. Я не хочу ограничивать пользователя тем, что он может с этим сделать.
В JavaSound API tutorial он читает:
Как правило, только один входной порт может быть открыт в то время, но аудио-вход смеситель, который смешивает аудио из нескольких портов также возможен.
Означает ли это, что JavaSound может захватывать только в эксклюзивном режиме или что сам JavaSound может обрабатывать только один входной порт?
Если первое верно, то кто-нибудь знает, как обойти эту проблему на Java?
да, кажется, это линукс/java issue – qwlice 2010-12-21 14:26:52