Захват аудио в неисключительном режиме с JavaSound API - PullRequest
0 голосов
/ 05 декабря 2010

Я написал код для захвата звука с помощью 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?

1 Ответ

0 голосов
/ 20 декабря 2010

Я думаю, это проблема, связанная с Linux / Ubuntu. Я нашел несколько сайтов в Интернете, которые упоминают и / или решают эту проблему, вот два из них:

...