Explorar o código

fix dlna progress reporting for wd tv

Luke Pulverenti %!s(int64=10) %!d(string=hai) anos
pai
achega
12d47e1e94
Modificáronse 1 ficheiros con 14 adicións e 4 borrados
  1. 14 4
      MediaBrowser.Dlna/PlayTo/Device.cs

+ 14 - 4
MediaBrowser.Dlna/PlayTo/Device.cs

@@ -635,15 +635,25 @@ namespace MediaBrowser.Dlna.PlayTo
             }
 
             XElement uPnpResponse;
-
+            
+            // Handle different variations sent back by devices
             try
             {
                 uPnpResponse = XElement.Parse(trackString);
             }
-            catch (Exception ex)
+            catch (Exception)
             {
-                _logger.ErrorException("Unable to parse xml {0}", ex, trackString);
-                return new Tuple<bool, uBaseObject>(true, null);
+                // first try to add a root node with a dlna namesapce
+                try
+                {
+                    uPnpResponse = XElement.Parse("<data xmlns:dlna=\"urn:schemas-dlna-org:device-1-0\">" + trackString + "</data>");
+                    uPnpResponse = uPnpResponse.Descendants().First();
+                }
+                catch (Exception ex)
+                {
+                    _logger.ErrorException("Unable to parse xml {0}", ex, trackString);
+                    return new Tuple<bool, uBaseObject>(true, null);
+                }
             }
 
             var e = uPnpResponse.Element(uPnpNamespaces.items);