DLNA實現本地媒體服務器

Platinum播放遠程的媒體,遠程服務器作爲媒體服務器,通過打開遠程媒體url實現媒體播放。

本地媒體服務器(DMS),相當於創建一個本地的WebServer,將本地的文件夾共享出去。

基本處理流程:

初始化Upnp->啓動WebWerver並註冊回調->註冊設備和回調->註冊控制點回調。

要實現本地媒體服務器,需要實現哪些功能模塊呢?

1)設備描述:相關的設備描述和服務描述,方便的WIFI網絡中定位媒體服務器;

2)共享文件元信息,媒體服務器下包含哪些文件信息。元信息的獲取在服務啓動時同步獲取;

3)實現設備回調,最重要的莫過於控制動作回調,其它的比如定閱,獲取變量等暫時不用考慮。實現完控制動作回調基本上服務就可用了。而控制動作回調中最重要的就是實現瀏覽的功能。這樣客戶端就可以知道根目錄下的item列表,列表下面的item的屬性。這樣的動作是在UPnP-av-ContentDirectory-v1-Service-20020625中所描述的:媒體服務器下面的內容目錄服務,服務器描述了瀏覽動作應該帶的參數,做出的迴應。要做出對應的迴應邏輯,只需要知道上述文件元信息。

4)最後是實現文件內容傳輸。上面在生成瀏覽動作的返回數據時,裏面的item中包含了文件內容的url,向該url發請求時會由sdk的WebServer處理,然後產生回調。回調就是個文件IO,包含獲取文件信息,打開文件,讀文件,寫文件,Seek,關閉文件。用戶需要根據回調時傳入的url找到對應的文件元信息,然後做出對應動作即可。比如在打開文件的時候,創建一個文件信息,文件信息中包含文件句柄,讀位置等,然後這個文件信息作爲cookie給WebServer。在讀文件的時候這個Cookie還帶着,於是就可以讀一段數據傳回去。
 

 

 

 

 

參考文獻:

https://blog.csdn.net/baihacker/article/details/37603229

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章