From 7354b8b874e172b3f826d8343941316626daa2c3 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Fri, 21 May 2021 18:05:40 +0800
Subject: [PATCH] 海康视频问题修复

---
 src/views/dataL/dataL.vue |  156 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 99 insertions(+), 57 deletions(-)

diff --git a/src/views/dataL/dataL.vue b/src/views/dataL/dataL.vue
index 0917c68..f771894 100644
--- a/src/views/dataL/dataL.vue
+++ b/src/views/dataL/dataL.vue
@@ -1186,65 +1186,107 @@
       // console.log(this.$store.state)
     },
     //获取视频
-    openRealVideoBox(serialNumber, channelNumber) {
+    openRealVideoBox(serialNumber, channelNumber,deviceNumber,manufacturer) {
       var that = this;
-      var newAxios = axios.create({
-        baseURL: "https://web.byisf.com:18000",
-        withCredentials: false,
-        headers: {
-          "Content-type": "application/x-www-form-urlencoded",
-        },
-      });
-      newAxios
-        .post(
-          "/api_control",
-          {},
-          {
-            params: {
-              param: JSON.stringify({ PktType: "GetAccessToken" }),
-            },
-          }
-        )
-        .then((res) => {
-          newAxios
-            .get(
-              `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${serialNumber}&chl=${channelNumber}`
-            )
-            .then((result) => {
-              that.videoSource = result.data.data.m3u8;
-              if (Hls.isSupported()) {
-                var dom = document.getElementById(
-                  "real_video_conversationDataL"
-                );
-                that.hls = new Hls();
-                var m3u8Url = decodeURIComponent(that.videoSource);
-                that.hls.loadSource(m3u8Url);
-                that.hls.attachMedia(dom);
-                that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
-                  dom.play();
-                });
-                that.hls.on(Hls.Events.ERROR, function (event, data) {
-                  // console.log(data, 4566824159, "视频播放有问题!!!");
-                  if (data.fatal) {
-                    switch (data.type) {
-                      case Hls.ErrorTypes.NETWORK_ERROR:
-                        console.log(
-                          "fatal network error encountered, try to recover"
-                        );
-                        that.hls.startLoad();
-                        break;
-                      case Hls.ErrorTypes.MEDIA_ERROR:
-                        console.log(
-                          "fatal media error encountered, try to recover"
-                        );
-                        that.hls.recoverMediaError();
-                        break;
-                    }
+
+      if (manufacturer == "HK"){
+        axios
+          .get(
+            `/api/blade-jfpts/equipment/equipment/selectEquimentPlayInfo?number=${deviceNumber}&bmp=m3u8&manufacturer=${manufacturer}`
+          )
+          .then((result) => {
+            that.videoSource = result.data.data.address;
+            if (Hls.isSupported()) {
+              var dom = document.getElementById(
+                "real_video_conversationDataL"
+              );
+              that.hls = new Hls();
+              var m3u8Url = decodeURIComponent(that.videoSource);
+              that.hls.loadSource(m3u8Url);
+              that.hls.attachMedia(dom);
+              that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
+                dom.play();
+              });
+              that.hls.on(Hls.Events.ERROR, function (event, data) {
+                // console.log(data, 4566824159, "视频播放有问题!!!");
+                if (data.fatal) {
+                  switch (data.type) {
+                    case Hls.ErrorTypes.NETWORK_ERROR:
+                      console.log(
+                        "fatal network error encountered, try to recover"
+                      );
+                      that.hls.startLoad();
+                      break;
+                    case Hls.ErrorTypes.MEDIA_ERROR:
+                      console.log(
+                        "fatal media error encountered, try to recover"
+                      );
+                      that.hls.recoverMediaError();
+                      break;
                   }
-                });
-              }
-            });
+                }
+              });
+            }
+          });
+      }else{
+        var newAxios = axios.create({
+          baseURL: "https://web.byisf.com:18000",
+          withCredentials: false,
+          headers: {
+            "Content-type": "application/x-www-form-urlencoded",
+          },
         });
+        newAxios
+          .post(
+            "/api_control",
+            {},
+            {
+              params: {
+                param: JSON.stringify({ PktType: "GetAccessToken" }),
+              },
+            }
+          )
+          .then((res) => {
+            newAxios
+              .get(
+                `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${serialNumber}&chl=${channelNumber}`
+              )
+              .then((result) => {
+                that.videoSource = result.data.data.m3u8;
+                if (Hls.isSupported()) {
+                  var dom = document.getElementById(
+                    "real_video_conversationDataL"
+                  );
+                  that.hls = new Hls();
+                  var m3u8Url = decodeURIComponent(that.videoSource);
+                  that.hls.loadSource(m3u8Url);
+                  that.hls.attachMedia(dom);
+                  that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
+                    dom.play();
+                  });
+                  that.hls.on(Hls.Events.ERROR, function (event, data) {
+                    // console.log(data, 4566824159, "视频播放有问题!!!");
+                    if (data.fatal) {
+                      switch (data.type) {
+                        case Hls.ErrorTypes.NETWORK_ERROR:
+                          console.log(
+                            "fatal network error encountered, try to recover"
+                          );
+                          that.hls.startLoad();
+                          break;
+                        case Hls.ErrorTypes.MEDIA_ERROR:
+                          console.log(
+                            "fatal media error encountered, try to recover"
+                          );
+                          that.hls.recoverMediaError();
+                          break;
+                      }
+                    }
+                  });
+                }
+              });
+          });
+      }
     },
   },
   created() {
@@ -1288,7 +1330,7 @@
     activeName() {
       if (this.activeName == "third") {
         this.i++;
-        this.openRealVideoBox(this.a.serialNumber, this.a.channelNumber);
+        this.openRealVideoBox(this.a.serialNumber, this.a.channelNumber,this.a.deviceNumber,this.a.manufacturers);
       } else {
         var dom = document.getElementById("real_video_conversationDataL");
         if (dom.getAttribute("src") != "") {

--
Gitblit v1.9.3