浏览代码

修改获取播放地址接口

qiuzijian 4 年之前
父节点
当前提交
aca2067cdf

+ 33 - 31
.idea/workspace.xml

@@ -2,6 +2,8 @@
 <project version="4">
 <project version="4">
   <component name="ChangeListManager">
   <component name="ChangeListManager">
     <list default="true" id="b5beace6-e4f4-419b-8299-c67e17af5998" name="Default Changelist" comment="">
     <list default="true" id="b5beace6-e4f4-419b-8299-c67e17af5998" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" beforeDir="false" afterPath="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" afterDir="false" />
     </list>
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -18,8 +20,8 @@
       <file pinned="false" current-in-tab="true">
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="403">
-              <caret line="433" column="44" selection-start-line="433" selection-start-column="44" selection-end-line="433" selection-end-column="44" />
+            <state relative-caret-position="235">
+              <caret line="455" column="68" selection-start-line="455" selection-start-column="68" selection-end-line="455" selection-end-column="68" />
               <folding>
               <folding>
                 <element signature="e#129#150#0#PHP" expanded="true" />
                 <element signature="e#129#150#0#PHP" expanded="true" />
               </folding>
               </folding>
@@ -30,8 +32,8 @@
       <file pinned="false" current-in-tab="false">
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="469">
-              <caret line="36" column="54" selection-start-line="36" selection-start-column="54" selection-end-line="36" selection-end-column="54" />
+            <state relative-caret-position="544">
+              <caret line="62" column="80" selection-start-line="62" selection-start-column="70" selection-end-line="62" selection-end-column="80" />
               <folding>
               <folding>
                 <element signature="e#141#162#0#PHP" expanded="true" />
                 <element signature="e#141#162#0#PHP" expanded="true" />
               </folding>
               </folding>
@@ -42,8 +44,8 @@
       <file pinned="false" current-in-tab="false">
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="126">
-              <caret line="15" column="31" selection-start-line="15" selection-start-column="17" selection-end-line="15" selection-end-column="31" />
+            <state relative-caret-position="147">
+              <caret line="16" column="67" selection-start-line="16" selection-start-column="54" selection-end-line="16" selection-end-column="67" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
@@ -75,8 +77,8 @@
       <file pinned="false" current-in-tab="false">
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
         <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="371">
-              <caret line="119" column="40" lean-forward="true" selection-start-line="119" selection-start-column="40" selection-end-line="119" selection-end-column="40" />
+            <state relative-caret-position="589">
+              <caret line="164" column="22" selection-start-line="164" selection-start-column="15" selection-end-line="164" selection-end-column="22" />
               <folding>
               <folding>
                 <element signature="e#141#185#0#PHP" expanded="true" />
                 <element signature="e#141#185#0#PHP" expanded="true" />
               </folding>
               </folding>
@@ -115,9 +117,9 @@
       <find>//todo</find>
       <find>//todo</find>
       <find>// todo</find>
       <find>// todo</find>
       <find>人员定位</find>
       <find>人员定位</find>
-      <find>getCamerasUrl</find>
       <find>streamform</find>
       <find>streamform</find>
       <find>getCamerasList</find>
       <find>getCamerasList</find>
+      <find>getCamerasUrl</find>
     </findStrings>
     </findStrings>
   </component>
   </component>
   <component name="Git.Settings">
   <component name="Git.Settings">
@@ -173,9 +175,9 @@
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/MineController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/MineController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Routes/api.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Routes/api.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Http/Controllers/Api/MineApiController.php" />
-        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" />
         <option value="$PROJECT_DIR$/Modules/Mine/Services/MineServices.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php" />
+        <option value="$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
         <option value="$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php" />
       </list>
       </list>
     </option>
     </option>
@@ -436,12 +438,12 @@
       <option name="presentableId" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1618368322468</updated>
       <updated>1618368322468</updated>
       <workItem from="1618368323697" duration="143000" />
       <workItem from="1618368323697" duration="143000" />
-      <workItem from="1618368497550" duration="169574000" />
+      <workItem from="1618368497550" duration="170159000" />
     </task>
     </task>
     <servers />
     <servers />
   </component>
   </component>
   <component name="TimeTrackingManager">
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="169717000" />
+    <option name="totallyTimeSpent" value="170302000" />
   </component>
   </component>
   <component name="ToolWindowManager">
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
     <frame x="0" y="0" width="1440" height="900" extended-state="0" />
@@ -790,16 +792,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="371">
-          <caret line="119" column="40" lean-forward="true" selection-start-line="119" selection-start-column="40" selection-end-line="119" selection-end-column="40" />
-          <folding>
-            <element signature="e#141#185#0#PHP" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
     <entry file="file://$PROJECT_DIR$/Modules/Mine/Services/MineServices.php">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="501">
         <state relative-caret-position="501">
@@ -810,27 +802,37 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="469">
-          <caret line="36" column="54" selection-start-line="36" selection-start-column="54" selection-end-line="36" selection-end-column="54" />
+        <state relative-caret-position="147">
+          <caret line="16" column="67" selection-start-line="16" selection-start-column="54" selection-end-line="16" selection-end-column="67" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/HaiKangController.php">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="589">
+          <caret line="164" column="22" selection-start-line="164" selection-start-column="15" selection-end-line="164" selection-end-column="22" />
           <folding>
           <folding>
-            <element signature="e#141#162#0#PHP" expanded="true" />
+            <element signature="e#141#185#0#PHP" expanded="true" />
           </folding>
           </folding>
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Modules/Camera/Routes/api.php">
+    <entry file="file://$PROJECT_DIR$/Modules/Camera/Http/Controllers/Api/CameraApiController.php">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="126">
-          <caret line="15" column="31" selection-start-line="15" selection-start-column="17" selection-end-line="15" selection-end-column="31" />
+        <state relative-caret-position="544">
+          <caret line="62" column="80" selection-start-line="62" selection-start-column="70" selection-end-line="62" selection-end-column="80" />
+          <folding>
+            <element signature="e#141#162#0#PHP" expanded="true" />
+          </folding>
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
     <entry file="file://$PROJECT_DIR$/Modules/Camera/Services/CameraServices.php">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="403">
-          <caret line="433" column="44" selection-start-line="433" selection-start-column="44" selection-end-line="433" selection-end-column="44" />
+        <state relative-caret-position="235">
+          <caret line="455" column="68" selection-start-line="455" selection-start-column="68" selection-end-line="455" selection-end-column="68" />
           <folding>
           <folding>
             <element signature="e#129#150#0#PHP" expanded="true" />
             <element signature="e#129#150#0#PHP" expanded="true" />
           </folding>
           </folding>

+ 10 - 2
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -49,13 +49,21 @@ class CameraApiController extends BaseController
      */
      */
     public function getCamerasUrl()
     public function getCamerasUrl()
     {
     {
+        $parent_id = Input::get('parent_id', '');
         $camera_id = Input::get('camera_id', '');
         $camera_id = Input::get('camera_id', '');
 
 
-        if (!$camera_id) {
+        if (!$parent_id || !$camera_id) {
             return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
             return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
         }
         }
 
 
-        $result = CameraServices::getCameraUrlByCameraId($camera_id);
+        //判断是否使用海康视频服务器
+        $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak');
+
+        if ($is_hak) {
+            $result = CameraServices::getHaiKangCameraUrl($parent_id, $camera_id);
+        } else {
+            $result = CameraServices::getCameraUrlByCameraId($camera_id);
+        }
 
 
         return self::successResponse($result);
         return self::successResponse($result);
     }
     }

+ 10 - 11
Modules/Camera/Http/Controllers/Api/HaiKangController.php

@@ -132,23 +132,22 @@ class HaiKangController extends BaseController
 
 
     /**
     /**
      * 获取摄像头码流url
      * 获取摄像头码流url
-     * @param Request $request
      * @return array|mixed
      * @return array|mixed
      */
      */
-    public function getCamerasUrl(Request $request)
+    public function getCamerasUrl()
     {
     {
-        if (!$request->has('cameraIndexCode')) {
+        if (!Input::has('cameraIndexCode')) {
             return $this->error(1, '缺少必要参数');
             return $this->error(1, '缺少必要参数');
         }
         }
         $url          = $this->artemis . '/api/video/v1/cameras/previewURLs';
         $url          = $this->artemis . '/api/video/v1/cameras/previewURLs';
-        $cameras_info = json_decode($this->getCamerasInfo($request), true);
+        $cameras_info = json_decode($this->getCamerasInfo(Input::all()), true);
         //请求参数
         //请求参数
         $params = [];
         $params = [];
 //        $params['regionIndexCode'] = $request->input('regionIndexCode');
 //        $params['regionIndexCode'] = $request->input('regionIndexCode');
-        $params['cameraIndexCode'] = $request->input('cameraIndexCode');
-        $params['streamType']      = 1;
+        $params['cameraIndexCode'] = Input::get('cameraIndexCode');
+        $params['streamType']      = 1;  //0主码流 1子码流 2第三码流
         $params['protocol']        = 'hls';
         $params['protocol']        = 'hls';
-        $params['transmode']       = 1;
+        $params['transmode']       = 1;  //0:UDP 1:TCP
         $params['streamform']      = 'ps';
         $params['streamform']      = 'ps';
         if ($cameras_info['data']['channelType'] == 'analog') {
         if ($cameras_info['data']['channelType'] == 'analog') {
             $params['expand'] = 'transcode=1&videotype=h264';
             $params['expand'] = 'transcode=1&videotype=h264';
@@ -168,18 +167,18 @@ class HaiKangController extends BaseController
 
 
     /**
     /**
      * 获取摄像头详情
      * 获取摄像头详情
-     * @param Request $request
+     * @param array $data
      * @return array|bool|string
      * @return array|bool|string
      */
      */
-    public function getCamerasInfo(Request $request)
+    public function getCamerasInfo($data)
     {
     {
-        if (!$request->has('cameraIndexCode')) {
+        if (isset($data['cameraIndexCode']) || !$data['cameraIndexCode']) {
             return $this->error(1, '缺少必要参数');
             return $this->error(1, '缺少必要参数');
         }
         }
         $url = $this->artemis . '/api/resource/v1/cameras/indexCode';
         $url = $this->artemis . '/api/resource/v1/cameras/indexCode';
         //请求参数
         //请求参数
         $params                    = [];
         $params                    = [];
-        $params['cameraIndexCode'] = $request->input('cameraIndexCode');
+        $params['cameraIndexCode'] = $data['cameraIndexCode'];
 
 
         $this->sign = $this->get_sign($url);
         $this->sign = $this->get_sign($url);
         $result     = $this->curlPost($this->pre_url . $url, json_encode($params));
         $result     = $this->curlPost($this->pre_url . $url, json_encode($params));

+ 27 - 0
Modules/Camera/Services/CameraServices.php

@@ -445,4 +445,31 @@ class CameraServices
 
 
         return $result;
         return $result;
     }
     }
+
+    //查询海康矿井摄像头播放链接
+    public static function getHaiKangCameraUrl($parent_id, $camera_id)
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $query = MineListExt::where('mine_id', $parent_id)->first();
+
+        Input::replace(
+            [
+                'url'             => trim($query->ip, '/') . ':' . $query->port,
+                'key'             => $query->key,
+                'secret'          => $query->secret,
+                'cameraIndexCode' => $camera_id,
+            ]
+        );
+        $haikang   = new HaiKangController();
+        $result_hk = $haikang->getCamerasUrl();
+        if ($result_hk['data']['url']) {
+            $result['data']['camera_id'] = $camera_id;
+            $result['data']['url']       = $result_hk['data']['url'];
+        }
+
+        return $result;
+    }
 }
 }