国产探花免费观看_亚洲丰满少妇自慰呻吟_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,來做錄屏直播了。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泾川县| 冕宁县| 项城市| 将乐县| 祁东县| 石阡县| 曲沃县| 中山市| 龙泉市| 荥阳市| 天全县| 黄龙县| 邓州市| 田阳县| 鹤壁市| 阿克陶县| 磐安县| 塘沽区| 谷城县| 吴旗县| 玉山县| 莫力| 崇义县| 西充县| 龙里县| 永平县| 城市| 丰镇市| 安顺市| 安徽省| 温泉县| 泊头市| 宝清县| 漠河县| 疏附县| 方城县| 莒南县| 新化县| 四川省| 梁河县| 南华县|