648540858
2022-03-14 bde0e13682ed75d2e8c0cb8a1fd6a96bb92f1dd8
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRTPServerFactory.java
@@ -45,12 +45,8 @@
        Map<String, Object> param = new HashMap<>();
        int result = -1;
        /**
         * 不设置推流端口端则使用随机端口
         */
        if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
            param.put("port", 0);
        }else {
        // 不设置推流端口端则使用随机端口
        if (!StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
            int newPort = getPortFromportRange(mediaServerItem);
            param.put("port", newPort);
        }
@@ -205,7 +201,7 @@
    /**
     * 调用zlm RESTful API —— startSendRtp
     */
    public Boolean startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) {
    public JSONObject startSendRtpStream(MediaServerItem mediaServerItem, Map<String, Object>param) {
        Boolean result = false;
        JSONObject jsonObject = zlmresTfulUtils.startSendRtp(mediaServerItem, param);
        if (jsonObject == null) {
@@ -216,7 +212,7 @@
        } else {
            logger.error("RTP推流失败: " + jsonObject.getString("msg"));
        }
        return result;
        return jsonObject;
    }
    /**
@@ -242,9 +238,18 @@
     */
    public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) {
        JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId);
        Integer code = mediaInfo.getInteger("code");
        if (mediaInfo == null) {
            return 0;
        }
        if ( code < 0) {
            logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg"));
            return -1;
        }
        if ( code == 0 && ! mediaInfo.getBoolean("online")) {
            logger.warn("查询流({}/{})是否有其它观看者时得到: {}", app, streamId, mediaInfo.getString("msg"));
            return -1;
        }
        return mediaInfo.getInteger("totalReaderCount");
    }