国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > OS > 安卓 > 正文

Android PC投屏功能實現的示例代碼

2024-09-11 17:15:14
字體:
來源:轉載
供稿:網友

本文介紹了Android PC投屏功能實現的示例代碼,分享給大家,具體如下:

代碼地址 :https://github.com/deepsadness/MediaProjectionDemo

效果預覽

投屏效果預覽

簡單說明:

使用Android MediaProjection Api來完成視頻的截圖 通過WebSocket進行鏈接。將圖片傳遞給網頁

想法來源

看到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,來做錄屏直播了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網之家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳城县| 腾冲县| 新建县| 永新县| 兰西县| 彩票| 绿春县| 韩城市| 宁晋县| 永兴县| 温宿县| 彩票| 泽库县| 张家港市| 兴国县| 宝应县| 汽车| 顺平县| 康保县| 芦山县| 阿拉善左旗| 宣汉县| 白城市| 玉溪市| 农安县| 尉氏县| 武山县| 新巴尔虎右旗| 朔州市| 通榆县| 凌源市| 阿拉善盟| 高邮市| 彭水| 镇巴县| 尼玛县| 和政县| 新干县| 临朐县| 双桥区| 霍城县|