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

首頁 > 系統 > Android > 正文

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

2019-10-22 18:12:25
字體:
來源:轉載
供稿:網友

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

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

效果預覽

Android,PC投屏

投屏效果預覽

簡單說明:

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

想法來源

看到vysor,覺得特別好玩,于是就想著自己能不能試著做一個類似的功能出來。搜索了相關實現。發現網上已經有網友針對vysor做了分析。于是就照著思路,按圖索驥,當作對MediaProjection Api的練習,來完成這個小項目

主要思路

1. 獲取屏幕的截屏

Android在Api 21以上為我們已經提供了系統的Api可以進行操作。

主要是這幾個類的相互配合

MediaProjection和VirtualSurface,還有截圖的話,使用ImageReader,三個類配合使用。

Android,PC投屏

配套使用示意圖.png

這里需要注意的是,需要通過這個回調,每當屏幕發生變化,就會回調這個接口,可以得到最新的截圖。

ImageReader::setOnImageAvailableListener

2. 搭建Socket連接,將圖片的數據進行傳遞

node 部分的代碼在 https://github.com/deepsadness/MediaProjectionDemo/tree/master/sockt

因為我們的目標是在網頁內打開,所以需要和網頁進行通信。可以簡單的使用WebSocket進行雙方通向

Android,PC投屏

簡單示意圖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,來做錄屏直播了。

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旬阳县| 洪洞县| 台江县| 山阴县| 南阳市| 新营市| 苍溪县| 抚顺市| 炎陵县| 盐池县| 文化| 和林格尔县| 三门峡市| 鄂尔多斯市| 四川省| 东莞市| 金山区| 彭水| 乐业县| 清水河县| 买车| 尚义县| 山东| 惠州市| 郑州市| 云梦县| 泾源县| 昭苏县| 滕州市| 崇义县| 西乡县| 吐鲁番市| 逊克县| 苏尼特右旗| 西华县| 呼伦贝尔市| 麟游县| 博兴县| 吴桥县| 瑞昌市| 固镇县|