Android PC 투 스크린 기능 구현 예시 코드

2347 단어 AndroidPC 스크린
본 고 는 안 드 로 이 드 PC 투 스크린 기능 이 실 현 된 예시 코드 를 소개 하고 여러분 에 게 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다.
코드 주소:https://github.com/deepsadness/MediaProjectionDemo
효과 미리 보기

스크린 효과 미리보기
간단 한 설명:
  • Android MediaProjection Api 를 사용 하여 동 영상 캡 처 완료
  • 웹 소켓 을 통 해 링크 한다.웹 페이지 에 사진 전달
  • 아이디어 출처
    vysor 를 보 니 너무 재미 있어 서 비슷 한 기능 을 해 볼 수 있 을 까 하 는 생각 이 들 었 습 니 다.관련 실현 을 검색 했다.인터넷 상에 서 이미 네티즌 들 이 vysor 에 대해 분석 한 것 을 발견 하 였 다.그래서 생각 에 따라 준 마 를 찾 아 미디어 Projection Api 에 대한 연습 으로 이 작은 프로젝트 를 완성 했다.
    주요 사고 방향
    1.화면 캡 처 가 져 오기
    Android 는 Api 21 이상 에서 시스템 의 Api 를 제공 하여 조작 할 수 있 습 니 다.
    주로 이 몇 가지 종류의 상호 협조 이다.
    MediaProjection 과 Virtual Surface,그리고 캡 처 하면 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.다음 단계
    다음 단 계 는 녹 화 된 에이 피 를 이용 해 녹화 방송 을 하 는 것 이다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기