Обмен экранами через Java-апплет - PullRequest
3 голосов
/ 29 марта 2012

Я ищу дополнение для нашего решения "прямой эфир и подкаст", которое использует камеру для записи речей в нашем доме.

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

Технически мне нужно следующее:

[динамики ноутбука] -> [Снимок экрана каждые N секунд с помощью апплета на веб-странице] -> [Отображение экрана динамика на другой веб-странице для внешних зрителей]

Я знаю, что есть приложения Javaкоторые делают запись экрана, но сохраняют вывод файла локально.Мне нужно что-то, что делает то же самое, но отправляет изображение на сервер.На стороне сервера я думал о том, чтобы websocket.js принимал и отображал изображение (другие предложения приветствуются).

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

Спасибо !!

1 Ответ

2 голосов
/ 30 марта 2012

Меня недавно попросили оценить возможности прямой трансляции экрана через апплет.Большинство API видео не поддерживают кодеки с достаточно высокой степенью сжатия (например, JMF).Некоторые API могут делать расширенные форматы (JFFMPEG, Xuggle), но также могут использовать нативные.В то время как у приложения обычно нет проблем для приложения.запущенный (свободно плавающий) с использованием Java Web Start или апплета Plug-In 2, создатели Xuggle определяют «порядок загрузки нативов» как проблему (например, не будет работать) как для JWS, так и для апплетов.

Жаль, что после более чем десятилетия разработки Java не имеет разумного API для захвата / обработки видео, который можно было бы развернуть для широкого использования (на основе апплетов / JWS - для «широкой публики»).) GUI.

Возможно, вы сможете найти решение с помощью Flash.

Обновление 1

На самом деле мне не нужно, чтобы экран записывался как видео.

Фактически, вы упомянули многое из этого в своем первоначальном вопросе, но я сосредоточился на нескольких ключевых словах, прежде чем составлять ответ.Виноват.: P

ОК.

  • Получение изображения относительно просто.Апплету нужно доверять, чтобы получить снимок экрана, но если доверять, то для получения изображения достаточно нескольких строк кода.
  • Кодирование изображения в JPEG с определенным качеством / настройкой сжатия (впамяти) также возможно.
  • Отправка изображения на сервер будет зависеть от размера в байтах и ​​скорости соединения, но одно изображение с высокой степенью сжатия каждые 10 секунд должно быть выполнимым.Сервер должен был бы реализовать функциональность для приема изображения.

Что касается отображения изображения на клиенте, кажется, у вас уже есть некоторые идеи, основанные на JS.Если вы можете сделать эту работу оптимальной, так как ее можно просматривать в браузерах без Java.

Я бы все же рекомендовал бы вам развернуть приложение.в «динамик», используя Java Web Start , а не вставлять апплет.Приложение JWS.даст вам меньше проблем с развертыванием и обслуживанием, а запуск JWS будет .. приятнее. Более того, свободный плавающий кадр, запущенный с использованием JWS, может минимизировать себя (или в более поздних JRE стать прозрачным) во время действияполучение изображения экрана - таким образом захватывая все на экране, кроме самого себя.

Обновление 2

Я действительно нашел этот код здесь.

Это ... ужасно.Не код, сайт.Когда я посетил его, я получил сообщение о том, что всплывающее окно было подавлено (достаточно справедливо).Затем был раздражающий «вибрирующий диалог», зависший в середине страницы (и следовавший за свитком).Вы нажимаете маленький x, чтобы увидеть - открылась еще одна вкладка с еще одним всплывающим диалоговым окном, в котором говорится о какой-то другой чепухе о том, как "Вы выиграли ..." - с достаточно громким звуком, чтобы заглушить мой большой объем транс-плейлистов / танцевальных списков.

Затем, после того, как, черт возьми, из моего FF, я возвращаюсь на исходную страницу, закрываю проклятый «диалог», прокручиваю вниз и вижу… красный фон для кода (вздрагивает).Это насколько я мог управлять.Я закрыл страницу с кодом.

Попробуйте этот код вместо одного снимка экрана.

Можно ли использовать это нана стороне клиента ..

Да.

.. и получить его с помощью javascript на стороне сервера?

Не совсем.Если вы не имеете в виду сервер на основе IIS, работающий под управлением JScript от Microsoft.JavaScript - это технология на стороне клиента.

По соображениям безопасности серверы должны защищать себя.EG From:

  • Кто-то создает ведомого робота, который загружает все 1000 документов на ведомой машине на сайт - чтобы он вышел из строя.и сервировки скотоложство порно (или хуже).
...