国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳普湖县| 澜沧| 丘北县| 台江县| 松潘县| 辽源市| 绥棱县| 福建省| 吐鲁番市| 蒲城县| 双辽市| 西丰县| 马公市| 漯河市| 稷山县| 平罗县| 呼图壁县| 南涧| 蒙阴县| 商城县| 乳源| 得荣县| 丹东市| 陇南市| 绍兴市| 新竹市| 汝州市| 昌都县| 娄烦县| 自治县| 会同县| 昌都县| 乌苏市| 绿春县| 石首市| 尚义县| 民乐县| 墨竹工卡县| 梓潼县| 宁乡县| 西充县|