Я написал код для захвата звука с помощью JavaSound API.
Это начинается так:
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
audioFormat);
TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
line.open();
Однако, как только вызывается getLine () , другие приложения больше не могут начинать захват звука.
И наоборот, getLine () завершится ошибкой, если запущены некоторые другие приложения для захвата звука.
Обычно я могу использовать диктофон во время сеанса Skype, это означает, что захват звука не обязательно должен быть эксклюзивным.
Я бы тоже хотел, чтобы мое приложение не было эксклюзивным. Я не хочу ограничивать пользователя тем, что он может с этим делать.
В учебнике JavaSound API он гласит:
Как правило, одновременно может быть открыт только один входной порт, но микшер аудиовхода, который микширует звук из нескольких портов.
Означает ли это, что JavaSound может выполнять захват только в эксклюзивном режиме или что сама JavaSound может обрабатывать только один входной порт?
Если первое верно, знает ли кто-нибудь, как обойти эту проблему в Java?