我正嘗試使用從C#應用捕獲的圖像創建HTML5'遠程桌面'。圖像被轉換成base64字符串並通過socket.io發送到頁面並顯示在畫布上。它在我的電腦上工作得很好,但是在任何速度較慢的電腦上它都沒有。它似乎無法更新得足夠快並導致頁面崩潰。這裏的「接收」行動代號:Socket.io - 每34毫秒接收一次數據
socket.of('/1').on('receive', function (data) {
var img = new Image();
img.onload = function() {
context.drawImage(img, 0, 0, example.width, example.height);
};
img.src = "data:image/png;base64," + data.message;
});
的數據在約29 fps的每34毫秒,從而在畫布更新中發送的,似乎是一個實時視頻。有沒有一種方法可以接收數據並在另一個「線程」中繪製圖像?或者任何人都可以建議如何解決這個問題?謝謝您的幫助。
也許瀏覽器崩潰了,因爲下一個數據包在完成第一個數據包渲染之前已經進入。嘗試跳過收到數據包的時間和drawImage調用完成時間之間的數據包。 –
爲什麼它是每幀新圖像?另外:有一個原因,大多數視頻編解碼器不會發送每幀全幀... –
嘿。 @JonBenedicto我不認爲這是因爲即使註釋掉上面的內容但離開事件,它仍然會滯後和崩潰。不過謝謝。 –