|  |  | 
 |  |  | import java.util.regex.Matcher; | 
 |  |  | import java.util.regex.Pattern; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @author lin | 
 |  |  |  */ | 
 |  |  | @Component | 
 |  |  | public class ZLMMediaListManager { | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 使用异步的当时更新媒体流列表 | 
 |  |  |         zlmresTfulUtils.getMediaList(mediaServerItem, (mediaList ->{ | 
 |  |  |             if (mediaList == null) return; | 
 |  |  |             if (mediaList == null) { | 
 |  |  |                 return; | 
 |  |  |             } | 
 |  |  |             String dataStr = mediaList.getString("data"); | 
 |  |  |  | 
 |  |  |             Integer code = mediaList.getInteger("code"); | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             //            StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream()); | 
 |  |  |             List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId()); | 
 |  |  |             if (gbStreamList != null && gbStreamList.size() == 1) { | 
 |  |  |                 transform.setGbStreamId(gbStreamList.get(0).getGbStreamId()); | 
 |  |  | 
 |  |  |             } | 
 |  |  |             if (transform != null) { | 
 |  |  |                 if (channelOnlineEvents.get(transform.getGbId()) != null)  { | 
 |  |  |                     channelOnlineEvents.get(transform.getGbId()).run(transform.getApp(), transform.getStream()); | 
 |  |  |                     channelOnlineEvents.get(transform.getGbId()).run(transform.getApp(), transform.getStream(), transform.getServerId()); | 
 |  |  |                     channelOnlineEvents.remove(transform.getGbId()); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         storager.updateMedia(transform); | 
 |  |  |         return transform; | 
 |  |  | 
 |  |  |         //使用异步更新推流 | 
 |  |  |         zlmresTfulUtils.getMediaList(mediaServerItem, app, streamId, "rtmp", json->{ | 
 |  |  |  | 
 |  |  |             if (json == null) return; | 
 |  |  |             if (json == null) { | 
 |  |  |                 return; | 
 |  |  |             } | 
 |  |  |             String dataStr = json.getString("data"); | 
 |  |  |  | 
 |  |  |             Integer code = json.getInteger("code"); | 
 |  |  | 
 |  |  |         if (streamProxyItem == null) { | 
 |  |  |             result = storager.removeMedia(app, streamId); | 
 |  |  |         }else { | 
 |  |  |             // TODO 暂不设置为离线 | 
 |  |  |             result =storager.mediaOutline(app, streamId); | 
 |  |  |         } | 
 |  |  |         return result; |