Подтвердить что ты не робот

Как я могу обрабатывать несколько входов мыши в Java?

Мой друг попросил меня ввести синий и красный указатель для представления входов двух отдельных мышей, чтобы ускорить сценарий микширования для микширования звука в реальном времени. Я бы с удовольствием, но насколько я думаю, это отличная идея, я не знаю, с чего начать искать возможное решение.

Где я должен начать исследование жизнеспособного метода реализации двойных мышечных данных?

4b9b3361

Ответ 1

Посмотрите jinput.

У меня было несколько клавиатур, работающих с ним, я почти уверен, что он поддерживает несколько мышей тоже.

Ответ 3

Это зависит от того, какую операционную систему вы собираетесь использовать.

В Windows вы можете использовать:

  • CPNMouse - комбинация драйверов и программного обеспечения, очень гибкая и позволяет полностью скрыть некоторых из мышей из операционной системы.
  • RawInput - API, предоставляемый только для Windows XP. Вы можете использовать его, чтобы различать два входа мыши, сами рисовать курсоры и скрывать основной курсор. Взгляните на код SDGT, использование С# этого API.
  • Для обоих решений вам нужно будет построить мост JNI для вашего приложения.

Если вы используете сервер X.Org(X11), есть исправленная версия под названием MPX который должен поддерживать несколько мышей даже для устаревших приложений. Теперь он должен быть частью ствола X.Org, но я не очень хорошо знаком с ним. Во всяком случае, у него есть API, поэтому вы можете использовать его через мост JNI.

Ответ 4

Вы можете использовать несколько устройств, но на уровне Java все события мыши объединены в один поток. Событие не включает в себя какую мышь. Вы сказали, что хотите смешать звук, верно? Ну, этот микс может быть интересным, но, конечно же, не тем, что вы хотите.

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