簡體   English   中英

Java或C#中的UPnP AV遠程控制

[英]UPnP AV Remote Control in Java or C#

我需要創建一種可以與UPnP媒體服務器交互的遠程控制。

我已經讀過UPnP AV堆棧有三種應用程序:媒體服務器,媒體渲染器,控制點。 起初,我認為控制點是我想要編程的,但是,在瀏覽了幾個庫的文檔后,在我看來,控制點仍然想要播放服務器在設備上提供的媒體文件,控制點運行,使用外部軟件(與媒體渲染器不同,它自己播放文件)。

我是否理解正確或完全錯了?

此外,我找不到任何易於使用的庫。 這可能是由於我的技能很差,但我也覺得許多圖書館的文檔都很糟糕且不完整。

我不記得我遇到的所有圖書館,但它們包括經常提到的名字,如Cling,Fraunhofer FOKUS和Cyber​​Link。 我在他們的網站上閱讀了大部分內容,包括一些文檔,並且無法真正找到我如何以我想要的方式使用它們。

我只需要一些東西讓我連接到服務器,索引媒體列表,這樣我就可以跳到任何軌道,只有我可以播放,停止,暫停,下一個,上一個和控制音量 但是文件應該在服務器端播放

你知道Java或C#有什么好處嗎? 非常感謝提前。 :)

起初,我認為控制點是我想要編程的,但是,在瀏覽了幾個庫的文檔后,在我看來,控制點仍然想要播放服務器在設備上提供的媒體文件,控制點運行,使用外部軟件(與媒體渲染器不同,它自己播放文件)。

為了與UPnP AV兼容,軟件應用程序或硬件設備必須包括至少一個UPnP AV設備(MediaServer,ControlPoint或MediaRenderer)及其強制服務。 存在提供若干設備的應用程序,因此,在實踐中可能找不到邏輯分離。 通常,視頻播放器僅實現用於瀏覽服務器和下載其內容的ControlPoint服務(內容甚至可以位於另一服務器上)。

我只需要一些東西讓我連接到服務器,索引媒體列表,這樣我就可以跳到任何軌道,只有我可以播放,停止,暫停,下一個,上一個和控制音量。 但是文件應該在服務器端播放。

UPnP定義了必須由設備實現的若干服務(例如,MediaServer必須提供DirectoryService)。 每個服務都有強制和可選的操作(例如,可以通過Browse方法瀏覽DirectoryService)。 為了實現您的目標,您的服務器必須實現UPnP MediaServer(瀏覽其內容所需)和UPnP MediaRenderer(需要控制播放)。 UPnP ControlPoint充當一種遠程控制。 它用於瀏覽服務器並選擇用於播放文件的服務器。

瀏覽請求如下所示(ObjectID 0始終表示樹的根):

<Browse xmlns:u =" urn:schemas-upnp-org:service:ContentDirectory:1 ">
<ObjectID>0</ObjectID>
<Filter></Filter>
<RequestedCount>0</RequestedCount>
<StartingIndex >0</StartingIndex>
<SortCriteria ></ SortCriteria>
<BrowseFlag> BrowseDirectChildren </BrowseFlag >
</u:Browse>

服務器回答的響應可能如下所示:

<DIDL-Lite>
<item id="1" parentID ="0" restricted ="1">
<upnp:class>object.item.videoItem </upnp:class>
<dc:title>Video file</dc:title>
<upnp:artist>John Doe</upnp:artist>
<upnp:genre>Action</ upnp:genre>
<upnp:director>John Doe Jr.</upnp:director>
<res protocolInfo="http-get:*:video/mpeg:*" resolution ="352x288">
http://10.20.30.40:12345/ExportContent?id=1
</res>
</item>
</DIDL-Lite >

在這種情況下,服務器只有一個視頻項(通常,服務器將有幾個包含許多項的文件夾)。 res元素包含有關資源本身的信息(它所在的位置,必須使用的傳輸協議,mime類型,......)。 在您的情況下,服務器甚至可以使用“localhost”作為地址回答,從而阻止下載文件。 無論如何,服務器的MediaRenderer部分應該能夠訪問它。

我不記得我遇到的所有圖書館,但它們包括經常提到的名字,如Cling,Fraunhofer FOKUS和Cyber​​Link。

就個人而言,我會推薦Cyber​​Link for Java 我用它來實現MediaServer,但它提供了足夠的實現ControlPoint或MediaRenderer。 此外,您應該獲得UPnP開發人員工具,例如用於UPnP的開發人員工具(最初是英特爾UPnP工具)用於LinuxGUPnP工具 GUPnP還為C提供了一個UPnP庫。這些開發人員工具允許您調用和調試UPnP命令,並在開發過程中非常方便。 另一個有用的資源是來自UPnP聯盟的UPnP設備描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM