Browse Source

版本升级维护

yyqxiaoyin 5 years ago
parent
commit
c5bede7428

+ 15 - 1
MKRRadioManager/Classes/MKRRadioManager/MKRWIFIDeviceManager/MKRWIFIDeviceManager.m

@@ -585,9 +585,23 @@ static inline void wd_playControl_queue(void (^block)(void)){
     });
 }
 
+- (NSDictionary *)parsePlayInfoString:(NSString *)playInfoXmlString{
+    NSMutableDictionary *resultDic = [NSMutableDictionary dictionaryWithDictionary:[NSDictionary mkr_dictionaryWithXML:playInfoXmlString]];
+    NSString *metaDataString = [resultDic objectForKey:@"TrackMetaData"];
+    metaDataString = [metaDataString stringByReplacingOccurrencesOfString:@"&" withString:@"mkr_***"];
+    NSDictionary *metaDic = [NSDictionary mkr_dictionaryWithXML:metaDataString];
+    NSDictionary *metaItemDic = metaDic[@"item"];
+    if (![metaItemDic isKindOfClass:NSDictionary.class]) {
+        metaItemDic = @{};
+    }
+    [resultDic setObject:metaDic[@"item"]?:@{} forKey:@"TrackMetaData"];
+    return resultDic;
+}
+
 - (id <MKRRadioResorce>)getPlayingStatusWithDevice:(id <MKRUPnPDevice>)device {
     wd_playControl_queue(^{
-        NSDictionary *resultDic = [[ASControlTools sharedInstanceUPNP] libupnp_getPlayInfo:device.avTransportUrl];
+        NSString *resultString = [[ASControlTools sharedInstanceUPNP] libupnp_getPlayInfoString:device.avTransportUrl];
+        NSMutableDictionary *resultDic = [self parsePlayInfoString:resultString];
         if (!resultDic || !resultDic.allKeys.count) {
             return ;
         }

+ 2 - 0
libs/libAS-Control.framework/Headers/ASControlTools.h

@@ -321,6 +321,8 @@ int libupnp_SetDuerAuthToken(NSString  *ControlURL,NSString *DuerAccessToken,NSS
 /// 获取播放信息
 - (NSDictionary *)libupnp_getPlayInfo:(NSString *)controlUrl;
 
+- (NSString *)libupnp_getPlayInfoString:(NSString *)controlUrl;
+
 int libupnp_SetChannelUpdateV2(NSString  *ControlURL,
                                NSString *UserID,
                                NSString *TimeStamp,

BIN
libs/libAS-Control.framework/libAS-Control