2012年11月中旬,Google發佈了Android 4.2。雖然它和Android 4.1同屬Jelly Bean系列,但卻添加了不少新的功能。其中,在顯示部分,Android 4.2在Project Butter基礎上再接再礪,新增了對Wi-Fi Display功能的支持。由此也致使整個顯示架構發生了較大的變化。web
本文首先介紹Wi-Fi Display的背景知識,而後再結合代碼對Android 4.2中Wi-Fi Display的實現進行介紹。網絡
Wi-Fi Display常常和Miracast聯繫在一塊兒。實際上,Miracast是Wi-Fi聯盟(Wi-Fi Alliance)對支持Wi-Fi Display功能的設備的認證名稱。經過Miracast認證的設備將在最大程度內保持對Wi-Fi Display功能的支持和兼容。由此可知,Miracast考察的就是Wi-Fi Display(本文後續將再也不區分Miracast和Wi-Fi Display)。而Wi-Fi Display的核心功能就是讓設備之間經過Wi-Fi無線網絡來分享視音頻數據。以一個簡單的應用場景爲例:有了Wi-Fi Display後,手機和電視機之間能夠直接藉助Wi-Fi,而無需硬連線(如HDMI)就可將手機中的視頻投遞到TV上去顯示[①]。以目前智能設備的發展趨勢來看,Wi-Fi Display極有可能在較短期內幫助咱們真正實現多屏互動。session
從技術角度來講,Wi-Fi Display並不是另起爐竈,而是充分利用了現有的Wi-Fi技術。圖1所示爲Wi-Fi Display中使用的其餘Wi-Fi技術項。架構
圖1 Miracast的支撐體系結構ide
由圖1可知,Miracast依賴的Wi-Fi技術項[②]有:post
上述的Wi-Fi技術中,絕大部分功能由硬件廠商實現。而在Android中,對Miracast來講最重要的是兩個基礎技術:編碼
下邊咱們對Miracast幾個重要知識點進行介紹,首先是拓撲結構和視音頻格式方面的內容。加密
Miracast一個重要功能就是支持Wi-Fi Direct。但它也考慮了無線網絡環境中存在AP設備的狀況下,設備之間的互聯問題。讀者可參考如圖2所示的四種拓撲結構。spa
圖2 Miracast的四種拓撲結構.net
圖2所示內容比較簡單,此處就再也不詳述。另外,在Wi-Fi Display規範中,還存在着Source將Video和Audio內容分別傳送給不一樣Render Device的狀況。感興趣的讀者可參考Wi-Fi Display技術規範。
另外,Miracast對所支持的視音頻格式也進行了規定,如表1所示。
表1 Miracast 視音頻格式支持
分辨率 |
17種 CEA格式,分辨率從640*480到1920*1080,幀率從24到60 29種VESA格式,分辨率從800*600到1920*1200,幀率從30到60 12種手持設備格式,分辨率從640*360到960*540,幀率從30到60 |
視頻 |
H.264高清 |
音頻 |
必選:LPCM 16bits,48kHz採樣率,雙聲道 可選: LPCM 16bits,44.1kHz採樣率,雙聲道 Advanced Audio coding Dolby Advanced Codec 3 |
最後,咱們簡單介紹一下Miracast的大致工做流程。Miracast以session爲單位來管理兩個設備之間的交互的工做,主要步驟包括(按順序):
經過對上面背景知識的介紹,讀者能夠發現: