您好,登錄后才能下訂單哦!
本文介紹了Android PC投屏功能實現的示例代碼,分享給大家,具體如下:
代碼地址 :https://github.com/deepsadness/MediaProjectionDemo
效果預覽
投屏效果預覽
簡單說明:
想法來源
看到vysor,覺得特別好玩,于是就想著自己能不能試著做一個類似的功能出來。搜索了相關實現。發現網上已經有網友針對vysor做了分析。于是就照著思路,按圖索驥,當作對MediaProjection Api的練習,來完成這個小項目
主要思路
1. 獲取屏幕的截屏
Android在Api 21以上為我們已經提供了系統的Api可以進行操作。
主要是這幾個類的相互配合
MediaProjection和VirtualSurface,還有截圖的話,使用ImageReader,三個類配合使用。
配套使用示意圖.png
這里需要注意的是,需要通過這個回調,每當屏幕發生變化,就會回調這個接口,可以得到最新的截圖。
ImageReader::setOnImageAvailableListener
2. 搭建Socket連接,將圖片的數據進行傳遞
node 部分的代碼在 https://github.com/deepsadness/MediaProjectionDemo/tree/master/sockt
因為我們的目標是在網頁內打開,所以需要和網頁進行通信。可以簡單的使用WebSocket進行雙方通向
簡單示意圖Again.png
通過Socket.iosocket.io/ 就可以簡單的實現
3. 如何將圖片顯示出來
html中的src就可以直接對傳遞byte[]的進行解析。
socket.on('image', function (msg) { var arrayBufferView = new Uint8Array(msg); var blob = new Blob([arrayBufferView], { type: "image/jpeg" }); var urlCreator = window.URL || window.webkitURL; var imageUrl = urlCreator.createObjectURL(blob); var img = document.getElementById("screen"); // var img = document.querySelector("#photo"); img.src = imageUrl;
4. 下一步
下一步,就是使用 錄制的Api,來做錄屏直播了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。