فهرست منبع

fix dlna progress reporting for wd tv

Luke Pulverenti 10 سال پیش
والد
کامیت
12d47e1e94
1فایلهای تغییر یافته به همراه14 افزوده شده و 4 حذف شده
  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);