Lawrence
2020-10-26 8bb1b2b94f07c2f9ebc4b2a63e9ace14765e3d8b
获取播放流编码时增加重试之间的延时,避免过度频繁的API查询
1个文件已修改
6 ■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/vmanager/play/PlayController.java
@@ -66,19 +66,23 @@
            try {
                if (System.currentTimeMillis() - startTime > 30 * 1000) {
                    storager.stopPlay(streamInfo);
                    logger.info("播放等待超时");
                    return new ResponseEntity<String>("timeout",HttpStatus.OK);
                }else {
                    streamInfo = storager.queryPlayByDevice(deviceId, channelId);
                    JSONObject rtpInfo = zlmresTfulUtils.getRtpInfo(streamId);
                    if (rtpInfo != null && rtpInfo.getBoolean("exist") && streamInfo.getFlv() != null){
                        logger.info("RTP已推流,查询编码信息:"+streamInfo.getFlv());
                        Thread.sleep(2000);
                        JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId);
                        if (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")) {
                            lockFlag = false;
                            logger.info("媒体编码信息已获取");
                            JSONArray tracks = mediaInfo.getJSONArray("tracks");
                            streamInfo.setTracks(tracks);
                            storager.startPlay(streamInfo);
                        }else {
                            logger.info("媒体编码信息未获取,2秒后重试...");
                        }
                    }else {
                        Thread.sleep(2000);