基于DLNA數字媒體適配器的設計
3.2 系統軟件工作流程
根據DLNA產品開發標準中的關鍵技術,其中“設備發現與控制”和“媒體管理”是系統實現的重要功能,軟件開發基于UPNP協議與UPNP AV協議架構。下文分別說明了兩主要功能的具體實現。
3.2.1 設備發現與控制工作流程
設備在發現與控制技術部分,采用了UPNP協議棧架構。設備在此部分主要完成初始化以及異步操作處理兩大主要功能。其軟件工作流程如圖4所示。本文引用地址:http://www.104case.com/article/148176.htm
初始化操作包括初始化UPNP協議棧、注冊根設備以及初始化設備。系統調用函數UpnpInit()初始化協議棧,制定模塊根目錄,通過注冊根設備,實現設備與UPNP庫的關聯。設備以多播方式發布存在消息,進入事件循環過程。當監聽器接收到設備發出的事件請求后,創建時間處理線程,回調UPNP事件處理函數進行處理,隨后開始異步操作處理過程。
設備運行期間,控制點會發送各種請求指令,處理這些異步請求就是設備最主要的工作。這些異步請求包含訂閱請求、取值請求和操作請求。訂閱請求訂閱了UPNP設備中服務狀態改變事件,訂閱成功后,一旦控制點的訂閱信息發生改變,系統都會得到及時的通知。取值請求用于返回服務狀態變量的當前值,設備監聽到控制點的取值請求后,會激活事件處理回調函數,將返回的當前值提供給接口發送給控制點。操作請求用于改變服務狀態變量值,設備從請求文檔中得到操作所需的相關參數,建立響應文檔后通知控制點設備。
3.2.2 媒體管理工作流程
系統媒體管理部分基于UPNP AV架構,設備用來連接一個或多個媒體服務器,允許控制點在家庭網絡內對媒體資源(例如音頻、視頻、圖片等)進行控制。
圖5為媒體管理工作流程。系統進程開始于控制點對媒體服務器的發現,當選擇好媒體內容進行播放控制時,首先要對媒體資源進行數據分析,控制點確定以何種傳輸協議以及數據格式進行數據傳輸,所有傳輸參數建立后,控制點通過調用Connection Manager::PrepareFor Conection()發布通知,控制媒體流。隨后服務器或渲染器將向控制點返回一個AVTransport InstanclID,用來控制媒體內容的傳輸,例如播放、暫停等。同樣,當媒體渲染器返回一個渲染控制ID,就可以用來對媒體進行控制,例如音量調節、亮度調節等。實際上,媒體內容的傳輸是媒體服務器和渲染器之間的操作UPNP本身并不參與。控制點利用UPNP協議建立設備間的連接,而媒體傳輸采用的則是具體的傳輸協議。
4 結束語
系統作為DLNA產品的開發,完成了數字媒體適配器軟、硬件的設計與實現。通過測試,系統實現了媒體資源共享及設備間的互控,能夠對媒體內容進行傳輸控制和渲染控制。系統作為數字家庭媒體的中心產品之一,很好的實現了DLNA家庭網絡的娛樂功能,也預示了電腦與家電產品互聯互通的美好前景。
評論