C# DLNA渲染器异常(0x80040501)

C# DLNA渲染器异常(0x80040501),c#,winforms,upnp,mediacontroller,dlna,C#,Winforms,Upnp,Mediacontroller,Dlna,我正在尝试设置一个DLNA控制器来控制。随着许多iphone DLNA控制器的普及,甚至连本机Airplay都能很好地使用它。它支持几乎所有的视频文件格式。我的DLNA控制器适用于我迄今为止测试过的所有设备(WDTV、Intels媒体渲染器、XBox360和许多其他iphone渲染器),除了这个 当我使用UPNPLid.dll[UPnP 1.0类型库(控制点)]时,我得到了包括iPush在内的所有渲染器 UPnPDeviceFinder finder = new UPnPDeviceFinder

我正在尝试设置一个DLNA控制器来控制。随着许多iphone DLNA控制器的普及,甚至连本机Airplay都能很好地使用它。它支持几乎所有的视频文件格式。我的DLNA控制器适用于我迄今为止测试过的所有设备(WDTV、Intels媒体渲染器、XBox360和许多其他iphone渲染器),除了这个

当我使用UPNPLid.dll[UPnP 1.0类型库(控制点)]时,我得到了包括iPush在内的所有渲染器

UPnPDeviceFinder finder = new UPnPDeviceFinder();
UPnPDevices devs = finder.FindByType(type, 0);
接下来,当我尝试迭代iPush的服务时,我得到“COMException(0x80040501)”

我尝试使用Intels Device Spy和Intels Media Controller推送到iPush。当调用Play时,iPush将永远显示一个加载屏幕。请注意,iPush与我在其上测试的所有iphone控制器配合使用都非常好。

在检查了互联网上的错误后,我看到关于WMP和xBox的问题给出了相同的例外,但没有答案

0x80040501是
UPNP\u E\u事件\u订阅\u失败
,这表明渲染器不理解控制器的请求。不幸的是,这个特定的Windows API的文档严重不足。我建议使用Wireshark并从iWhatever捕获初始握手,并与实现中的相同通信量进行比较。通过捕获您的实现,您还应该看到来自iDevice的更多描述性错误。毕竟是肥皂。当我发现这些创意有一些独特之处时,我不会感到惊讶。英特尔的UPnP套件是一个参考实现,所以如果它不起作用,那就有些可疑了。不过,如果我理解正确的话,英特尔在订阅和枚举方面没有问题,但在实际操作的后期阶段会有问题。但无论如何,Wireshark现在是你的朋友了。让DLNA与硬件设备协同工作是对数据包捕获的无尽追求

此链接也可能有帮助:


免责声明:我对Windows UPnP API不是特别的朋友,C#更少。我恰巧习惯于在C++中使用UPnP。p> 0x80040501是
UPNP\u E\u事件\u订阅\u失败
,这表明渲染器不理解控制器的请求。不幸的是,这个特定的Windows API的文档严重不足。我建议使用Wireshark并从iWhatever捕获初始握手,并与实现中的相同通信量进行比较。通过捕获您的实现,您还应该看到来自iDevice的更多描述性错误。毕竟是肥皂。当我发现这些创意有一些独特之处时,我不会感到惊讶。英特尔的UPnP套件是一个参考实现,所以如果它不起作用,那就有些可疑了。不过,如果我理解正确的话,英特尔在订阅和枚举方面没有问题,但在实际操作的后期阶段会有问题。但无论如何,Wireshark现在是你的朋友了。让DLNA与硬件设备协同工作是对数据包捕获的无尽追求

此链接也可能有帮助:

免责声明:我对Windows UPnP API不是特别的朋友,C#更少。我恰巧习惯于在C++中使用UPnP。p>
  foreach (var service in device.Services)  {//get the right service}