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

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

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

  話很少說,咱們直接進入一星期教你快速集成華爲Cast+ Kit的實戰演練環節。跟着下方攻略便可輕鬆完成開發。數據結構

首先,接口調用過程一圖瞭解——分佈式

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

集成開發全攻略——函數

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

在這裏插入圖片描述

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

在這裏插入圖片描述

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

在這裏插入圖片描述

註冊回調函數:gradle

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

在這裏插入圖片描述

  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的投屏超低時,保障了大型手機遊戲的手眼合一。3d

在這裏插入圖片描述

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


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

原做者:普拉斯

相關文章
相關標籤/搜索