欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android PC投屏功能實(shí)現(xiàn)的示例代碼

 更新時(shí)間:2018年04月26日 09:56:21   作者:deep_sadness  
本篇文章主要介紹了Android PC投屏功能實(shí)現(xiàn)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

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

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

效果預(yù)覽

投屏效果預(yù)覽

簡(jiǎn)單說(shuō)明:

  1. 使用Android MediaProjection Api來(lái)完成視頻的截圖
  2. 通過(guò)WebSocket進(jìn)行鏈接。將圖片傳遞給網(wǎng)頁(yè)

想法來(lái)源

看到vysor,覺(jué)得特別好玩,于是就想著自己能不能試著做一個(gè)類似的功能出來(lái)。搜索了相關(guān)實(shí)現(xiàn)。發(fā)現(xiàn)網(wǎng)上已經(jīng)有網(wǎng)友針對(duì)vysor做了分析。于是就照著思路,按圖索驥,當(dāng)作對(duì)MediaProjection Api的練習(xí),來(lái)完成這個(gè)小項(xiàng)目

主要思路

1. 獲取屏幕的截屏

Android在Api 21以上為我們已經(jīng)提供了系統(tǒng)的Api可以進(jìn)行操作。

主要是這幾個(gè)類的相互配合

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

配套使用示意圖.png

這里需要注意的是,需要通過(guò)這個(gè)回調(diào),每當(dāng)屏幕發(fā)生變化,就會(huì)回調(diào)這個(gè)接口,可以得到最新的截圖。

ImageReader::setOnImageAvailableListener

2. 搭建Socket連接,將圖片的數(shù)據(jù)進(jìn)行傳遞

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

因?yàn)槲覀兊哪繕?biāo)是在網(wǎng)頁(yè)內(nèi)打開(kāi),所以需要和網(wǎng)頁(yè)進(jìn)行通信??梢院?jiǎn)單的使用WebSocket進(jìn)行雙方通向

簡(jiǎn)單示意圖Again.png

通過(guò)Socket.iosocket.io/ 就可以簡(jiǎn)單的實(shí)現(xiàn)

3. 如何將圖片顯示出來(lái)

html中的src就可以直接對(duì)傳遞byte[]的進(jìn)行解析。

 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,來(lái)做錄屏直播了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • android實(shí)現(xiàn)驗(yàn)證碼按鈕

    android實(shí)現(xiàn)驗(yàn)證碼按鈕

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)驗(yàn)證碼按鈕功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 解決Could not find com.android.tools.build:gradle:3.0.0

    解決Could not find com.android.tools.build:gradle:3.0.0

    這篇文章主要介紹了在Android Studio升級(jí)時(shí)碰到Could not find com.android.tools.build:gradle:3.0.0問(wèn)題的解決方法,需要的朋友跟隨小編一起看看吧
    2021-08-08
  • Android閃屏效果實(shí)現(xiàn)方法

    Android閃屏效果實(shí)現(xiàn)方法

    這篇文章主要介紹了Android閃屏效果實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android閃屏效果的實(shí)現(xiàn)原理及相關(guān)功能與布局設(shè)置技巧,需要的朋友可以參考下
    2016-01-01
  • RecyclerView使用詳解

    RecyclerView使用詳解

    本文主要對(duì)RecyclerView的使用進(jìn)行了詳細(xì)介紹,文章結(jié)尾附上源碼下載,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • Android編程下拉菜單spinner用法小結(jié)(附2則示例)

    Android編程下拉菜單spinner用法小結(jié)(附2則示例)

    這篇文章主要介紹了Android編程下拉菜單spinner用法,結(jié)合實(shí)例較為詳細(xì)的總結(jié)分析了下拉菜單Spinner的具體實(shí)現(xiàn)步驟與相關(guān)技巧,并附帶兩個(gè)示例分析其具體用法,需要的朋友可以參考下
    2015-12-12
  • Android UI效果之繪圖篇(三)

    Android UI效果之繪圖篇(三)

    這篇文章主要介紹了Android UI效果之繪圖篇,針對(duì)Android開(kāi)發(fā)中的UI效果設(shè)計(jì)模塊進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android開(kāi)發(fā)之判斷有無(wú)虛擬按鍵(導(dǎo)航欄)的實(shí)例

    Android開(kāi)發(fā)之判斷有無(wú)虛擬按鍵(導(dǎo)航欄)的實(shí)例

    下面小編就為大家分享一篇Android開(kāi)發(fā)之判斷有無(wú)虛擬按鍵(導(dǎo)航欄)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Android自定義View實(shí)現(xiàn)水波紋效果

    Android自定義View實(shí)現(xiàn)水波紋效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)水波紋效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android實(shí)現(xiàn)系統(tǒng)語(yǔ)言切換功能

    Android實(shí)現(xiàn)系統(tǒng)語(yǔ)言切換功能

    這篇文章主要為大家詳細(xì)介紹了Android系統(tǒng)語(yǔ)言切換功能的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android屏幕分辨率工具類使用詳解

    Android屏幕分辨率工具類使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android屏幕分辨率工具類使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論