From 12879769af38a00425309e292b2c167afc6612c1 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 04 四月 2019 11:27:38 +0800
Subject: [PATCH] 增加点播功能

---
 QiaoJiaSystem/DataManagerServer/http_configserver.cpp |   83 +++++++++++++++++++++++++++--------------
 1 files changed, 54 insertions(+), 29 deletions(-)

diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index 494356c..9296951 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1318,28 +1318,41 @@
     }
     Json::Value value;
     if (value_reader.isMember("id")) {
-        if (value_reader["id"].isNull()) return "{\"ret_status\": \"id鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
-        value["connect_status"] = "True";
-        std::string rtmp_url = appConfig.getStringProperty("srsAddr");
-        rtmp_url.append("cam").append(value_reader["id"].asCString());
-        value["video_url"] = rtmp_url;
-        out = value.toStyledString();
-
-    } else {
-        //TODO
-        //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
+        if (value_reader["id"].isNull()) {
+            //鏈湴瑙嗛婧� 绗竴娆℃祴璇曡繛鎺�
+            //TODO
+            //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
 //    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
-        bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
+            bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
                             value_reader["str_username"].asString(), value_reader["str_password"].asString(), \
                             value_reader["str_brand"].asString());
-        if (!ret) {
+            if (!ret) {
+                return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+            }
+            std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
+            value["connect_status"] = "True";
+            value["video_url"] = rtmp_url;
+            out = value.toStyledString();
+        } else if (!value_reader["type"].isNull()) {
+
+            value["connect_status"] = "True";
+            std::string rtmp_url = appConfig.getStringProperty("srsAddr");
+            rtmp_url.append("cam").append(value_reader["id"].asCString());
+            value["video_url"] = rtmp_url;
+            out = value.toStyledString();
+            {
+                std::string topic = "VideoToImageMulth";
+                Json::Value json_cfg;
+                json_cfg["cam_startPublish"] = content;
+                std::string msg = json_cfg.toStyledString();
+                DBG("msg:" << msg);
+                nsqMsgProducer->Publish(topic, (void *) (&msg));
+            }
+        } else {
             return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
         }
-
-        std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
-        value["connect_status"] = "True";
-        value["video_url"] = rtmp_url;
-        out = value.toStyledString();
+    } else {
+        return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
     }
 
     return out;
@@ -1357,19 +1370,31 @@
     if (!reader.parse(content, value_reader)) {
         return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
     }
-
-    //TODO
-    //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
-//    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
-    DBG("cam_connect_video_stop begin");
-    bool ret = cam_connect_video_stop(value_reader["str_ip"].asString());
-    if (!ret) {
-        return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
-    }
-    DBG("cam_connect_video_stop end");
-
     Json::Value value;
-    value["ret_status"] = "ok_ack";
+    if (value_reader.isMember("id")) {
+        value["ret_status"] = "ok_ack";
+        {
+            std::string topic = "VideoToImageMulth";
+            Json::Value json_cfg;
+            json_cfg["cam_stopPublish"] = content;
+            std::string msg = json_cfg.toStyledString();
+            DBG("msg:" << msg);
+            nsqMsgProducer->Publish(topic, (void *) (&msg));
+        }
+    } else {
+        //TODO
+        //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
+//    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
+        DBG("cam_connect_video_stop begin");
+        bool ret = cam_connect_video_stop(value_reader["str_ip"].asString());
+        if (!ret) {
+            return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
+        }
+        DBG("cam_connect_video_stop end");
+
+        value["ret_status"] = "ok_ack";
+    }
+
 
     std::string out = value.toStyledString();
 

--
Gitblit v1.8.0