我目前正在将UPnP支持添加到应用程序中。它将充当媒体服务器、控制点和媒体渲染器。我的问题是,媒体服务器和媒体渲染器应该实现为两个独立的设备,还是一个根设备和一个嵌入式设备?
如果是后者,那么哪个是根设备?另外,根设备和嵌入式设备的UUID是相同的,还是根/嵌入式设备的UUID是唯一的?
理想情况下,我只想宣传一个能做所有事情的设备,但我不确定这是不是允许的。我查看了我的网络上的一些设备,但都没有嵌入设备,这让我想知道是否有一个单一的设备规范可以做所有的事情?
感谢您在这里的指导。
发布于 2012-10-20 06:27:29
[下面的任何引用都是对来自http://upnp.org/resources/upnpresources.zip的捆绑包中文档的引用]
您不能将媒体服务器和渲染器合并到单个UPnP设备中。UPnP-av-MediaRenderer-v3- device -20101231.pdf & UPnP-av-MediaServer-v4-Device-20101231.pdf为服务器和渲染器定义特定的设备类型(参见每个文档的第3节),因此您需要单独的UPnP设备。
我认为你可以将一个设备嵌入到另一个设备中。上述文档的第2.2节(设备模型)指出,渲染器和服务器设备分别可以是根设备或嵌入式设备。
如果您决定使用嵌入式设备,我相信每个设备都应该有自己的UUID。我找不到一个明确的参考资料,但它似乎强烈暗示在v1.1架构文档的2.3节(设备描述)中。这也是我在我维护的UPnP堆栈中所做的,我还没有发现这会导致任何问题。
尽管如此,如果您希望其他程序将您的服务器或渲染器用作标准的UPnP设备,而独立于您组合的服务器+渲染器+控制点,那么您只需要担心这些问题。如果您不关心服务器或渲染器的第三方使用,您可以自由地为您的产品做任何工作。因此,您可以在方便的情况下实现尽可能多或更少的UPnP规范。
发布于 2014-09-15 21:06:35
您可以广告两种不同的设备(MediaServer和MediaRenderer),每个设备都有自己的设备描述XML文件URL。每个设备都有自己的UUID。
其他UPnP设备对不同的设备和服务感兴趣。DLNA TV将搜索MedServer设备。ControlPoint将搜索MediaServer和MediaRenderer设备。
ControlPoint不会将自己宣传为设备或提供服务,因此没有设备描述XML文件或服务XML文件。
使用嵌入式UPnP设备似乎没有得到广泛使用,因此可能与其他UPnP控制点实现不兼容。
https://stackoverflow.com/questions/12981535
复制相似问题