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