3

我目前正在将 UPnP 支持添加到应用程序中。它将充当媒体服务器、控制点和媒体渲染器。我的问题是媒体服务器和媒体渲染器应该实现为 2 个独立的设备还是一个带有 1 个嵌入式设备的根设备?

如果是后者,那么哪个是根设备?根设备和嵌入式设备的 UUID 是否相同,或者每个根/嵌入式设备是唯一的?

理想情况下,我只想宣传一种可以做所有事情的设备,但我不确定是否允许这样做。我查看了网络上的一些设备,但没有一个设备中嵌入了设备,这让我想知道是否有一个单一的设备规范可以做所有事情?
感谢这里的任何方向。

4

2 回答 2

5

[下面的任何引用都是来自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 规范。

于 2012-10-19T22:27:29.160 回答
1

您可以宣传 2 个不同的设备(MediaServer 和 MediaRenderer),每个设备都有自己的设备描述 XML 文件 URL。每个设备都有自己的 UUID。

其他 UPnP 设备对不同的设备和服务感兴趣。DLNA 电视将搜索 MedServer 设备。ControlPoint 将搜索 MediaServer 和 MediaRenderer 设备。

ControlPoint 不会将自己宣传为设备或提供服务,因此没有设备描述 XML 文件或服务 XML 文件。

使用嵌入式 UPnP 设备似乎没有被广泛使用,因此可能与其他 UPnP 控制点实现不兼容。

于 2014-09-15T13:06:34.680 回答