女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用插即用UPnP擴展實現播放器的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-01-14 08:32 ? 次閱讀

1 引言

通用型即插即用UPnP(Universal Plug and Play)是PnP(Device Plug and Play)的擴展,它可發現和控制各種網絡設備,如網絡打印機、Internet網關等,并能提供相應服務。但UPnP不是即插即用的簡單擴展,它支持“0配置”和無線網絡,可自動發現其他供應商提供的設備。在UPnP協議下,一個設備可動態的加入網絡,獲得IP地址,廣播其功能,并了解其他設備的功能。很多種類的設備都可以使用UPnP協議,包括智能設備,無線設備。

UPnP使用標準的TCP/IP和Internet協議,能夠很好的在現存網絡中使用,使用這些標準協議使UPnP可從已有的各種經驗和知識中獲利,打破各種信息孤島,越過各種物理層,可以是有線的,也可以是無線的,具有設備間的相互協作基本特點。

目前,DLNA(現代數字家庭)是一個非常活躍的領域,UPnP是其中的主流協議之一。DLNA/UPnP的遠景是構建一個有線與無線的互操作網絡,由個人電腦、家用電器和移動設備組成,在家庭內部實現設備互聯和網絡控制,從而實現影音娛樂、內容共享。

UPnP組成包括設備節點,服務節點和控制節點。在UPnP網絡中,最小的可控制單位是服務,采用一系列的狀態變量描述服務的“行為”和“狀態”。UPnP使用各種現存的標準協議口,包括TCP/IP、HTTP,HTTPU、SSDP、GENA。使用標準化的協議保證了各種設備間的互操作性。總之,UPnP建立在各種協議之上,而不是API上,這使其能應用在各種不同的平臺上。同時,建立在各種現存的標準之上,具備很強的靈活性,可很好的適應現在和將來各種網絡設備的需求。

2 UPnP媒體播放器設計的基本思想

2.1 功能描述

UPnP網絡媒體播放器可以提供從網絡中獲取的各種娛樂信息,它允許控制節點對其進行控制。此外,根據所支持協議的不同,播放器也可以提供對數據流進行控制的功能。一個標準的UPnP網絡媒體播放器包含播放控制服務、連接管理服務和媒體傳輸服務。任何媒體播放器都至少提供兩種服務:播放控制服務和連接管理服務,媒體傳輸服務是可選的,它取決于設備所支持的傳輸協議。這里設計使用的協議是HTTP GET,能提供媒體傳輸服務,因而可以在數據傳輸過程中控制數據流。

2.2 過程描述

媒體播放器可由控制節點在局域網內對媒體服務器所提供的媒體進行播放控制。媒體服務器、播放器、控制節點3者的互動過程如下:控制節點使用SSDP協議在局域網內發現一個或多個媒體服務器和媒體播放器,首先定位媒體服務器上的資源,并需明確在服務器和播放器之間傳輸數據所需的協議和它們都支持的數據格式。這些傳輸參數都被確定后,控制節點就可以對傳輸的內容進行控制,如播放、暫停、停止等。真正的數據傳輸是在服務器和媒體播放器之間直接進行的,并且獨立于控制節點,因此不包含在UPnP內。即內容的傳輸是使用UPnP以外的協議。之后,控制節點使用媒體服務器所提供的內容目錄服務來獲取該服務器所支持的協議和數據類型,使用媒體播放器的連接管理服務來獲取相應的信息,比較后選定雙方都支持的傳輸協議和數據類型。在本設計中,使用的傳輸協議是HTTP GET,所支持的數據格式為MP3。最后,控制節點使用媒體播放器提供的媒體傳輸服務來控制數據流。

3 UPnP媒體播放器的實現方法

設計使用Intel公司的開源UPnP開發工具Device-Builder,在Microsoft.NET Framwork下開發。DeviceBuilder生成的UPnP協議棧由MiniServer模塊、HTTP模塊、線程庫模塊、XML解析模塊及協議棧編程接口等模塊組成,負責提供基本的UPnP功能,具體實現流程如下。

3.1 生成UPnP框架

使用DeviceBuilder生成相應平臺上的代碼,由于是在Microsoft.NET Framwork下開發,所以選擇的Target Platform應為:Windows 98,NT,XP。具體功能有:尋址、發現、描述、控制、發布事件。各功能組合在一起,為媒體播放器提供UPnP能力,但Intel開發包生成的僅是一個框架,還要為其添加解碼、控制功能及對播放列表的識別等。

3.2 添加媒體解碼庫

下載一個開源的播放器,將其改造成媒體解碼庫。即將播放器的功能抽象成函數以供外界調用,主要函數如下:

int decodestart(char*pBuffer):調用該函數開始播放,相當于原來播放器的play功能。pBuffer是一個公共緩沖區,存放已下載的媒體數據。

extem void Read(int*position):負責向公共緩沖區中裝入已下載的媒體數據,position指針則對應于公共緩沖區中應裝入的位置。由于一般下載的速度遠大于解碼速度,所以應注意裝入新數據時不要將尚未解碼的數據覆蓋掉。

extern void Decode(int*Dposition):當外界調用該函數時開始解碼,Dposition則指示對應于公共緩沖區的解碼位置。

此外還有pause,resume,stop等函數,均對應于原播放器的相應功能。將已實現的媒體解碼庫添加到生成的UPnP框架,再在UPnP框架中相應的位置調用庫文件中的函數以實現解碼、播放控制。

3.3 播放控制功能實現

添加媒體解碼庫后。還需添加:數據流實時控制能力、根據播放器的狀態發布消息。詳細過程如下:

(1)設置傳輸地址 當控制節點從媒體服務器選定一首歌時,則觸發設置傳輸地址(由媒體傳輸服務提供)這一動作。這時,如果播放器正在播放,首先要停止播放器的解碼動作,為新歌曲的播放做準備。接下來,在播放器獲得所選定歌曲的地址后(由控制節點提供),直接從媒體服務器中下載這首歌曲,在此項目中,播放器采用HTTP GET下載。下載前,還需對該URL進行判斷,查看下載的是否為播放列表,如果是播放列表,就不能將其直接傳給播放器,而要繼續從播放列表提供的地址中得到第1首歌的URL,再從媒體服務器中下載。最后,調用函數SetLastChange發布自己的狀態信息。

(2)數據流實時控制在下載的大小達到一定長度時,觸發傳輸控制服務中Play這一動作,這時,主線程創建一個解碼線程,該線程調用媒體解碼庫中的decodestart(char*pBuffer)函數,對存放在公用緩沖區中的數據進行解碼并播放,進行同步控制,以免當網絡出現擁塞或系統內存不足時,緩沖區中的播放指針超過下載指針而導致意外。如果選定的是含有多首歌曲的播放列表,則過程類似,只不過在一首歌曲播放完時會自動從媒體服務器端下載另一首歌曲,一邊下載,一邊播放。當用戶點擊next,previous時,首先檢查之前保存的URL是否為播放列表,若不是,則輸出錯誤信息;若是,則停止播放器的解碼動作,撤銷當前解碼線程,為新歌的播放做準備。由播放列表得到下一首歌的地址和端口號,開始下載數據,并創建新的解碼線程,最后,發布狀態信息。

所有的實際操作,如play,stop,pause,…,均與UPnP無關,它只實現消息傳遞。控制節點負責接收命令傳遞給播放器,再由播放器中的媒體解碼庫完成解碼、播放、暫停、停止等功能。媒體服務器、控制節點、媒體播放器的互動如圖1所示。

采用插即用UPnP擴展實現播放器的設計

4 測試與分析

系統開發完成后,在兩臺同處于一個局域網的臺式機上進行測試,測試流程如下:首先在一臺機上啟動Intel UP-nP工具集中的AVWizard程序,該程序其實就是媒體服務器和控制節點的合體,它既能提供媒體服務器的各種功能,也可提供控制點的功能。在另一臺機上啟動媒體播放器,AVWizard首先掃描網絡中有無它所支持的設備,發現媒體播放器后,獲得該播放器的設備描述文檔,并顯示播放器的名稱。用AvWizard選定一首MP3,并將地址發送給指定的媒體播放器(UPnP MediaRender)。播放器開始從媒體服務器指定的地址下載MP3,下載到一定長度時開始播放,詳細過程描述如下:

采用插即用UPnP擴展實現播放器的設計

采用插即用UPnP擴展實現播放器的設計

由圖2可知,當AVWizard選定一首歌曲時,播放器輸出為:“Invoke:UPnPAVTransport_SetAVTransportURI…”。觸發播放器中媒體傳輸服務中的設置傳輸地址這一動作.告訴播放器所需下載的媒體所在的URL和端口號,接著在AV Wizard中點擊play時,可以看到圖3中播放器輸出為:“Invoke:UP-nPAVTransport_Play(0,1)”,觸發播放器媒體傳輸服務中的play動作,開始下載要播放的內容,同時,播放器開始創建解碼線程,輸出:“Create thread success!!”,則表示解碼線程創建成功,在該解碼線程中調用媒體解碼庫中的函數。媒體解碼庫出:“…The main proccess start…player_init”,初始化媒體解碼庫,解碼并開始播放音樂。

5 結論

由此可見,該媒體播放器實現成功,但存在不足之處:由于直接在Intel公司開源UPnP開發工具DeviceBuilder生成的代碼上進行開發,所以界面不夠友好。實現媒體播放器的創新點如下:(1)直接在Intel生成的UPnP框架上進行開發,與現有的許多使用開源UPnP SDK開發相比,無需進行設備初始化和注冊工作,亦無需對UPnP的工作過程進行手動操作,使開發者的注意力可以完全集中在所需添加的服務上,無需關注繁瑣的協議通信細節,簡化UPnP應用的設計開發;但缺點是由于目前業界有許多SDK開發包具有類似的功能,直接使用生成的UPnP框架不利于按需更換協議庫。(2)可在不同的操作系統上生成相應的協議框架,屏蔽開發平臺的差異,方便開發人員在合適的平臺上實現所需的服務。(3)服務本身也可以作為模塊添加到應用程序中,如媒體解碼庫就是作為一個獨立的模塊添加,實現松散耦合的應用程序和組件,可根據不斷變化的情況和需求來實現服務,為媒體播放器的功能擴展提供了很好的基礎。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 播放器
    +關注

    關注

    5

    文章

    411

    瀏覽量

    37924
  • 協議
    +關注

    關注

    2

    文章

    614

    瀏覽量

    39819
  • 有線
    +關注

    關注

    0

    文章

    51

    瀏覽量

    16655
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    靈活電影播放器視頻/音頻播放軟件

    東京,2008年4月24日--瑞薩科技公司(Renesas Techno logy Corp.)今天宣布,推出為采用移動電話SH-Mobile*1應用處理的嵌入式系統開發的靈活電影播放器
    發表于 03-06 19:52

    請問如何實現一個最便宜的WAVE播放器

    設計一個WAVE播放器播放的WAV文件存在SD卡上:基本要求為:1。MCU通過SPI口讀取SD卡上的文件2。核心系統成本最優化,只需要一片MCU,和SD卡座(LPF、功放,卡,電源、按鍵、LED指示等不計成本,這些DD任何播放器
    發表于 01-21 06:36

    UPnP協議介紹和Android代碼如何實現

    UPnP協議介紹一. UPnP簡介英文名稱:Universal Plug and Play中文譯名:通用即插即用UPnP是由“通用即插即用
    發表于 07-02 06:23

    Linux下upnp安裝與使用

    1、upnp介紹:通用即插即用(英語:Universal Plug and Play,簡稱UPnP)是由“通用即插即用論壇”(UPnP? F
    發表于 07-02 08:27

    UPnP的工作過程

    UPnP簡介  通用即插即用(英語:Universal Plug and Play,簡稱UPnP)是由“通用即插即用論壇”(UPnP? Fo
    發表于 07-02 08:08

    UPnP詳細介紹 相關資料推薦

    )和公司網絡中的各種設備能夠相互無縫連接,并簡化相關網絡的實現UPnP通過定義和發布基于開放、因特網通訊網協議標準的UPnP設備控制協議來實現這一目標。
    發表于 07-05 06:26

    CSF文件播放器

    CSF文件播放器 CSF文件播放器 CSF文件播放器下載介紹:  csf文件播放器目前很多
    發表于 06-10 09:50 ?468次下載

    UPnP媒體播放器的研究與實現

     隨著數字家庭的興起,數字媒體內容的資源共享、設備之間的智能互聯及控制變得越來越重要。UPnP(通用型即插即用)是數字家庭網絡中的一個主流協議。介紹UPnP架構,描
    發表于 12-29 17:06 ?24次下載

    upnp_upnp是什么意思

    upnp_upnp是什么意思,UPnP是各種各樣的智能設備、無線設備和個人電腦等實現遍布全球的對等網絡連接(P2P)的結構。
    發表于 05-30 18:02 ?3368次閱讀

    音樂播放器

    音樂播放器,比較簡單。能實現基本的播放停止暫停等功能。喜歡研究可以改進
    發表于 09-09 17:32 ?39次下載

    LXE播放器

    lxe視頻播放器軟件是免費軟件,可以完全免費使用、可以自由傳播,exe視頻播放器用于播放屏幕錄像專家錄制的LXE和EXE格式的錄像文件,安裝后將自動關聯LXE格式文件,通過雙擊LXE文件就可以自動調用此
    發表于 11-23 16:14 ?0次下載

    基于Android音樂播放器的研究

    狗為代表的音樂播放器有著廣泛的消費群體,性能品質較優。同時,也存在很多其它不知名的音樂播放器。其中,陳文提出了將音樂播放器和手機傳感相結合,實現
    發表于 12-11 11:44 ?7次下載
    基于Android音樂<b class='flag-5'>播放器</b>的研究

    關于VR電影視頻播放器 盤點12款VR播放器

    VR電影和視頻那個播放器好,哪些播放器更為實用,由于視頻資源格式多樣,在一個播放器播放不了的視頻,在另一個播放器上也許可以,袖扣VR網小編
    發表于 06-27 15:50 ?12.8w次閱讀

    HarmonyOS開發案例:【視頻播放器

    使用ArkTS語言實現視頻播放器,主要包括主界面和視頻播放界面,
    的頭像 發表于 04-23 17:25 ?1116次閱讀
    HarmonyOS開發案例:【視頻<b class='flag-5'>播放器</b>】

    HarmonyOS開發案例:【視頻播放器

    使用ArkTS語言實現視頻播放器,主要包括主頁面和視頻播放頁面
    的頭像 發表于 04-24 14:52 ?1286次閱讀
    HarmonyOS開發案例:【視頻<b class='flag-5'>播放器</b>】