繁体   English   中英

通过Java Applet进行屏幕共享

[英]Screensharing via Java Applet

我正在为我们的“直播和播客”解决方案寻找一个补充,它使用相机拍摄我们家的演讲。

已要求我们将扬声器的幻灯片直接作为webbrowser中的图像而不是视频流进行查看。 我们不希望/不能在扬声器笔记本电脑上安装软件,所以我想到了一个Java小程序,扬声器可以通过webbrowser运行。

所以我需要的是技术上的:

[扬声器笔记本电脑] - > [通过网页上的小程序每N秒进行一次屏幕截图] - > [在外部观众的不同网页上显示扬声器的屏幕]

我知道有些Java应用程序会记录屏幕,但会在本地保存文件输出。 我需要做同样的事情,但是将图像发送到服务器。 在服务器端,我想到了websocket.js接受并显示图像(欢迎其他建议)。

如果有人可以帮助我,这将是很好的。 顺便说一句,我从来没有用Java编程,所以告诉我哪些框架我不需要真正帮助我。

谢谢!!

我最近被要求评估通过applet进行实时屏幕投射的可能性。 大多数视频API不支持具有足够高压缩的编解码器(例如JMF)。 有些API可以使用高级格式(JFFMPEG,Xuggle),但也可以使用本机格式。 虽然本机通常对应用程序没有问题。 使用Java Web Start或Plug-In 2 applet启动(自由浮动),Xuggle的制造商将“加载本机”的顺序识别为JWS和applet的问题(例如,不起作用)。

令人遗憾的是,在开发十多年之后,Java没有合理的视频捕获/处理API,可以广泛使用(基于applet / JWS - 用于'普通大众')GUI。

也许您可以使用Flash找到解决方案。

更新1

实际上,我不需要将屏幕录制为视频。

事实上,你在最初的问题中提到了很多,但在起草回复之前我只关注了几个关键词。 我的错。 :P

好。

  • 获取图像相对容易。 需要信任小程序以获取屏幕截图,但一旦信任,只需几行代码即可获取图像。
  • 将图像编码为特定质量/压缩设置(在存储器中)的JPEG也是可行的。
  • 将图像发送到服务器将取决于字节大小和连接速度,但是每10秒具有高压缩的一个图像应该是可行的。 服务器需要实现接受图像的功能。

至于在客户端上显示图像,似乎你已经有了一些基于JS的想法。 如果你可以做到最佳的工作,那么它可以在没有Java的浏览器中查看。

仍然建议你部署应用程序。 使用Java Web Start到'发言者',而不是嵌入applet。 一个JWS应用程序。 将为您提供更少的部署和维护麻烦,并且JWS的推出是..nicer。 此外,在拍摄屏幕图像的过程中,使用JWS启动的自由浮动框架可以最小化自身(或在后面的JRE中变得透明),从而捕获屏幕上除了自身之外的所有内容。

更新2

我实际上在这里找到了这个代码

那太可怕了。 不是代码,网站。 当我访问它时,我收到一条消息,说弹出窗口被压制(足够公平)。 然后,在页面中间盘旋(并在滚动之后)有一个刺激性的“振动对话”。 你点击小x来看 - 另一个用另一个浮动对话框打开的标签,说一些关于“你赢了......”的其他垃圾 - 声音响亮,足以淹没我的高容量恍惚/舞蹈播放列表。

然后关闭了我的FF之后,我回到原始页面,关闭该死的'对话',向下滚动并看到..代码的红色背景(颤抖)。 就我所能管理而言。 我用代码关闭了页面。

对于单个屏幕截图,请尝试使用此代码

是否有可能在客户端使用它..

是。

..并在服务器端用javascript接收它?

并不是的。 除非您指的是运行Microsoft JScript的基于IIS的服务器。 JavaScript是一种客户端技术。

出于安全原因,服务器需要保护自己。 EG来自:

  • 有人创建了一个slavebot,它将从机上的所有1000个文档上传到站点 - 以使其崩溃。
  • 人们高举你的服务器存储和服务兽性色情(或更糟)。

由于这样的事情(坏人有很多想象力),虽然服务器可以轻松接受上传,但默认情况下它们通常不会配置允许上传。

..(我不想在我的服务器上使用Java ;-)

它可以使用PHP,ASP,CGI等完成。它不需要特定的Java,但它确实需要服务器的一些主动参与,如果只检查正在上传的内容的大小,如果它变得太大就中止!

..请看看你发布的链接,但正如我所说,我不能用Java编程,虽然我可以理解其中的一些。 谢谢!

听起来你需要一些帮助才能让服务器端做好准备。 对于那些知道如何(不是我),但对于缺乏经验的潜在安全噩梦的人来说,这是微不足道的。

更新3

我在哪里添加发送图片的功能?

抱歉。 我没有试图实现这一点 - 你希望在发送之前将其编码为JPEG,以减小尺寸。 请参阅此代码 ,了解如何在用户可以看到效果的情况下提供可调压缩/质量。

有多种方法可以将图像提供给服务器。 EG套接字,HTTP,FTP .. AFAIU它取决于服务器如何接受它。 我不熟悉特定术语'websocket'或node.js脚本。 你能链接到你的意思吗?

..旧代码添加到pastebin,所以它是可读的

聪明的思考。 我注意到它使用了套接字,我认为套接字最适合这个,因为它们的开销很低,等待时间很短。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM