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