【发布时间】:2013-04-24 14:08:13
【问题描述】:
我想为音频流实现 DLNA 设备媒体渲染器 (DMR)。我在这里找到了文档:http://upnp.org/resources/upnpresources.zip 并发现似乎有三个版本的 DMR(MediaRenderer:1、MediaRenderer:2、MediaRenderer:3)。我找不到任何关于选择哪一个的建议。有什么理由不选择 MediaRenderer:3?
【问题讨论】:
我想为音频流实现 DLNA 设备媒体渲染器 (DMR)。我在这里找到了文档:http://upnp.org/resources/upnpresources.zip 并发现似乎有三个版本的 DMR(MediaRenderer:1、MediaRenderer:2、MediaRenderer:3)。我找不到任何关于选择哪一个的建议。有什么理由不选择 MediaRenderer:3?
【问题讨论】:
保证对 UPnP 服务的更新是向后兼容的,因此每个 MediaRenderer:3 设备都将包含 v1 和 v2 服务的实现,并将响应作为该版本的 v1 或 v2 的 MSEARCH。
请参阅 v1.1 设备架构文档(包含在您参考的 zip 中)以获取更多详细信息,具体而言
§1.2.2 设备可用 - 使用 ssdp:alive 通知
更新了 UPnP 设备 和服务类型需要完全向后兼容 相同类型的先前版本。
§1.3.2 使用 M-SEARCH 搜索请求
设备和服务类型的更新版本需要完全 向后兼容以前的版本。设备必须响应 M-SEARCH 请求任何支持的版本。例如,如果一个设备 实现“urn:schemas-upnporg: service:xyz:2”,它必须响应 该类型的搜索请求和 “urn:schemas-upnp-org:service:xyz:1”。响应必须指定 与搜索请求中包含的版本相同
换句话说,正确实现 MediaRenderer:3 的设备将可供需要 v1、v2 或 v3 服务的控制点使用。实现早期版本服务的设备将仅限于使用需要这些早期版本的控制点。
我同意你的观点,实施 MediaRenderer:3 是你最好的选择。这应该允许所有可能的控制点使用您的设备。
【讨论】: