【发布时间】:2017-06-29 21:42:57
【问题描述】:
我担心这是一个有点笼统的问题,我正在向熟悉 upnp-av 协议的人寻求建议。看,我克隆并构建了 Hupnp 库 [qt4 中的原始版本和 qt5 中的移植版本] 以使用其媒体服务器。我还克隆并构建了 gupnp-tools 以使用它们的 av-control 点。现在情况如下:
gupnp-av cp 通常效果很好。 Hupnp 库适用于某些控制点,但不适用于其他控制点。 gupnp-av cp 不适用于 Hupnp。它设法看到服务器,但不列出内容。
经过一番调查,我发现:对于与 Hupnp 配合良好的应用程序,它们会发送两个 upnp 浏览操作请求,一个是“BrowseMetaData”,然后是 Hupnp 发送响应后的“BrowseAllChildren”。至于 Gupnp-av ,它只发送“BrowseMetaData”而不发送其他浏览请求。我检查了从 Hupnp 到 Gupnp 对“BrowseMetaData”的响应是否成功到达。
我只是寻求一般性的建议,因为我不是这方面的专家。我的目标是使 Hupnp 与 gupnp(以及其他遭受相同问题的控制点)[作为开源贡献的一部分] 很好地工作。为什么会出现这种行为?为什么某些控制点仅适用于某些控制点,而另一些控制点则可以完美运行?我应该从哪里改善这种情况? 任何建议都非常感谢,谢谢。
【问题讨论】:
-
互操作失败的可能原因有很多——UPnP AV非常复杂。 gupnp-av-cp 本身只有 2500 行开源 C 代码(查找 gupnp-tools 存储库):您应该能够通过阅读代码找出它不起作用的原因(同时查找在数据线上)或通过调试 gupnp-av-cp。不过,我会先检查从终端运行时是否有任何警告。
-
@jku 我已经克隆了 c 代码并运行它(在 qt creator 中)。不幸的是没有警告。当涉及到 Hupnp 时,它只是从不调用“BrowseAllChildren”,而它确实与其他 upnp 设备/服务器一起调用它。这是我从 Hupnp 收到的对“BrowseMetaData”justpaste.it/18cwb 的回复