教你如何開發一個完敗Miracast的投屏新功能


  手機與電視,是陪伴在我們生活最常見,陪伴最長久的智能設備。迅猛發展的移動終端與通信技術,賦予了手機更廣闊多元的應用生態,大屏電視則以大視野和震撼影音,彌補了手里方寸帶來的視覺局限。而今,手機的延伸需求越來越突出,無線投屏也正逐漸成為觀看移動終端內容的主流方式之一,並在影音娛樂、遠程教育、在線辦公等方面扮演不可或缺的角色。

  通過接入華為終端分布式技術Cast+ Kit,可以實現以華為手機為中心,以Cast+鏡像投屏、Cast+流媒體投屏為載體,完成從手機小屏到高清大屏的柔滑轉換,為用戶帶來大屏觀影、大屏閱讀和游戲自帶8倍鏡的全新感受。

  話不多說,我們直接進入一星期教你快速集成華為Cast+ Kit的實戰演練環節。跟着下方攻略即可輕松完成開發。

首先,接口調用過程一圖了解——

更詳細的流程步驟拆解,請前往開發者聯盟-Cast+Kit開發指南
  簡單來說開發接入大致可以分為六個流程,首先需要進行變量聲明並獲取PlayerClient實例;然后在應用啟動時,獲取PlayerClient實例,啟動服務,注冊監聽;三要進行投屏業務相關內容設置,包括投屏屬性設置、鑒權模式信息設置和可被周邊設備發現的相關設置;四則是設置投屏顯示Surface,這里需要注意的是應用層面,要求保證投屏過程中不能錄屏、截屏、錄音,要求SurfaceView要設置FLAG_SECURE;最后的兩步則是與投屏相關的內容,也就是啟動投屏、暫停投屏和斷開連接的的執行。

集成開發全攻略——

  1. 首先創建一個應用工程,在AndroidManifest中添加所需要的權限

在這里插入圖片描述

  1. 在lib目錄下添加SDK的aar文件,並在應用級的build.gradle里面加上SDK的依賴。

在這里插入圖片描述

  1. 初始化相關服務和實例

在這里插入圖片描述

注冊回調函數:

  在IeventListener的onEvent中,sink端(設備)會上報各種消息,包括初始化服務、收到對端設備發來的連接請求、鑒權成功等;onDisplayEvent是手機端的回調,displayinfo是手機側的信息

在這里插入圖片描述

  1. 在初始化成功后,構建大屏投屏能力。設置其顯示分辨率、顯示幀數、開啟被發現、配置低時延策略等等。

在這里插入圖片描述

在這里插入圖片描述

  1. 移動端PIN碼輸入正確或密碼輸入正確或非首次非密碼模式投屏,會上報EVENT_ID_CONNECT_REQ消息,該消息下會攜帶請求連接移動端設備的ProjectionDevice信息。

在這里插入圖片描述

  1. 首次PIN碼模式會上報EVENT_ID_PIN_CODE_SHOW消息,PIN碼可從dislayinfo.getPinCode()獲得。

在這里插入圖片描述

  1. EVENT_ID_CONNECT_REQ消息后,順序上報EVENT_ID_DEVICE_CONNECTED和EVENT_ID_PAUSED消息。PAUSED消息下大屏端可以設置Surface並開始播放投屏視頻流,前提是必須保證Surface有效並且收到PAUSED后才開始投屏操作,以免因設備原因出現黑屏問題。
    在這里插入圖片描述
    在這里插入圖片描述
      集成完成啦,我們來感受下黑科技華為Cast+增強投屏技術帶來的新體驗吧。
    首先華為Cast+Kit采用系統級連接入口,操作簡單,在下拉菜單中選擇“無線投屏”,點擊相應設備后就可以完成投屏。

在這里插入圖片描述
  那么投屏效果如何呢?在市面上整體無線投屏時延基本在200ms左右的環境下,華為Cast+Kit擁有多項自研技術,可實現50ms的投屏超低時,保障了大型手機游戲的手眼合一。

在這里插入圖片描述

  *數據來自華為實驗室,不同網絡環境下投屏時延存在差異
  關於華為 Cast+Kit更多開發詳情,包括業務介紹、開發指南、接入准備、SDK如何獲取等,戳以下空降鏈接:
  https://developer.華為.com/consumer/cn/cast-kit


往期鏈接:別讓算法和數據結構拖你職業生涯的后腿

原作者:普拉斯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM