簡體   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