91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-23 12:40:09 來源:腳本之家 閱讀:215 作者:deep_sadness 欄目:移動開發

本文介紹了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,來做錄屏直播了。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陵水| 怀远县| 湘潭县| 平凉市| 仙桃市| 徐汇区| 镇安县| 奉新县| 融水| 长葛市| 昌黎县| 六盘水市| 崇礼县| 南通市| 郧西县| 若羌县| 淮安市| 鄂伦春自治旗| 曲水县| 攀枝花市| 香格里拉县| 青河县| 定结县| 塔城市| 武宣县| 永丰县| 郑州市| 右玉县| 沧源| 社旗县| 鄂伦春自治旗| 明水县| 保亭| 文登市| 绥芬河市| 江北区| 武鸣县| 鹤山市| 合作市| 会昌县| 渝北区|