gemercheung 2 years ago
parent
commit
d48c5af4b3

+ 65 - 77
packages/qjkankan-view/src/components/Fdkk/index.vue

@@ -1,26 +1,49 @@
 <template>
   <div class="fdkkcon">
     <template v-if="fdkkCurrentVersion == 'v3'">
-      <iframe allowfullscreen="true" allow="autoplay" :key="currentScene.sceneCode" v-if="!isMobile" id="fdkkifr"
-        :src="`/spc.html?m=${currentScene.sceneCode}&lang=${lang}`" frameborder="0"></iframe>
+      <iframe
+        allowfullscreen="true"
+        allow="autoplay"
+        :key="currentScene.sceneCode"
+        v-if="!isMobile"
+        id="fdkkifr"
+        :src="`https://test.4dkankan.com/spc.html?m=${currentScene.sceneCode}&lang=${lang}`"
+        frameborder="0"
+      ></iframe>
       <!-- <iframe :key="currentScene.sceneCode" v-if="!isMobile" id="fdkkifr" :src="`https://test.4dkankan.com/spc.html?m=${currentScene.sceneCode}`" -->
 
       <!-- v3场景移动端,用embed.html定制开发 -->
-      <v3mobile v-else @changeUrl="handleChange" @otherUrl="handleOther" :somedatainfo="somedatainfo"
+      <v3mobile
+        v-else
+        @changeUrl="handleChange"
+        @otherUrl="handleOther"
+        :somedatainfo="somedatainfo"
         :key="embeM || currentScene.sceneCode"
-        :url="otherLink ? otherLink : `/embed.html?from=mingyuan&m=${embeM || currentScene.sceneCode}&lang=${lang}&scene-link=1&rnd=${rnd}`" />
+        :url="
+          otherLink
+            ? otherLink
+            : `/embed.html?from=mingyuan&m=${
+                embeM || currentScene.sceneCode
+              }&lang=${lang}&scene-link=1&rnd=${rnd}`
+        "
+      />
     </template>
     <!-- :url="otherLink ? otherLink : `https://test.4dkankan.com/embed.html?from=mingyuan&m=${embeM || currentScene.sceneCode}&lang=zh&scene-link=1&rnd=${rnd}`" /> -->
 
-
-    <iframe allowfullscreen="true" allow="autoplay" :key="currentScene.sceneCode" v-else id="fdkkifr"
-      :src="`http://192.168.0.186:8081/${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}&lang=${lang}`"
-      frameborder="0"></iframe>
-
+    <iframe
+      allowfullscreen="true"
+      allow="autoplay"
+      :key="currentScene.sceneCode"
+      v-else
+      id="fdkkifr"
+      :src="`http://192.168.0.186:8081/${isMobile ? 'smg' : 'spg'}.html?m=${
+        currentScene.sceneCode
+      }&lang=${lang}`"
+      frameborder="0"
+    ></iframe>
 
     <!-- :src="`http://192.168.20.66:8080/${isMobile ? 'smg' : 'spg'}.html?m=${currentScene.sceneCode}`" -->
 
-
     <!-- <iframe id="fdkkifr" :src="`${isMobile?'smg':'spg'}.html?m=${currentScene.sceneCode}`" frameborder="0"></iframe> -->
   </div>
 </template>
@@ -31,10 +54,9 @@ import { useStore } from "vuex";
 import browser from "@/utils/browser";
 // import { useMusicPlayer } from '@/utils/sound'
 import v3mobile from "./v3fdkkmobile/iframe.vue";
-import { getApp } from '@/app'
+import { getApp } from "@/app";
 import config from "@/utils/config";
 
-
 // const musicPlayer = useMusicPlayer()
 
 const store = useStore();
@@ -43,97 +65,68 @@ const isMobile = computed(() => browser.isMobile());
 const lang = computed(() => config.lang);
 
 const currentScene = computed(() => store.getters["scene/currentScene"]);
-const fdkkCurrentVersion = computed(() => store.getters["scene/fdkkCurrentVersion"]);
-
-const somedatainfo = ref({})
+const fdkkCurrentVersion = computed(
+  () => store.getters["scene/fdkkCurrentVersion"]
+);
 
-const embeM = ref(null)
+const somedatainfo = ref({});
 
-const otherLink = ref(null)
+const embeM = ref(null);
 
-const rnd = ref(null)
+const otherLink = ref(null);
 
+const rnd = ref(null);
 
 const handleMessage = (res) => {
-  if (Object.prototype.toString.call(res.data) == '[object Object]') {
-    if (res.data.source !== 'qjkankan') {
-      return
+  if (Object.prototype.toString.call(res.data) == "[object Object]") {
+    if (res.data.source !== "qjkankan") {
+      return;
     }
 
-    let { event, params } = res.data
+    let { event, params } = res.data;
 
     //导览片段
     if (event == "toursList") {
-      store.commit('fdkk/setToursList', params.tours)
+      store.commit("fdkk/setToursList", params.tours);
     }
 
     //是否导览中
     if (event == "isPlayTours") {
-      store.commit('fdkk/setIsPlayTours', params.isPlay)
+      store.commit("fdkk/setIsPlayTours", params.isPlay);
     }
 
     // 是否flying
     if (event == "isFlying") {
-      store.commit('fdkk/setIsFlying', params.isFlying)
+      store.commit("fdkk/setIsFlying", params.isFlying);
     }
 
     if (event == "setMode") {
-      store.commit('fdkk/setMode', params.mode)
+      store.commit("fdkk/setMode", params.mode);
     }
 
-
     if (event == "setVR") {
       store.commit("functions/setVrStatus", params.status);
     }
 
     //场景本身的背景音乐 (同时可判断场景已经加载完成)
     if (event == "fdkkBgmLink") {
-      debugger
       // store.commit('fdkk/setFdkkBGM', params.music)
       if (params.music) {
-        store.dispatch('audio/initV4BGM', params.music)
-        // console.log(useMusicPlayer.player,'useMusicPlayer.player');
-        if (isMobile.value) {
-          // useMusicPlayer.player.watchPlay()
-          // if (useMusicPlayer.player.isPlay) {
-          //   setTimeout(() => {
-          //     musicPlayer.play()
-          //   }, 50);
-          // }
-        } else {
-          // useMusicPlayer.player.watchPlay(true)
-        }
-      }
-      //如果无场景音乐,则重置为作品本身音乐
-      else {
-        if (store.getters['scene/musicURL']) {
-          if (isMobile.value) {
-            // useMusicPlayer.player.watchPlay()
-            // if (useMusicPlayer.player.isPlay) {
-            //   setTimeout(() => {
-            //     musicPlayer.play()
-            //   }, 50);
-            // }
-          } else {
-            // useMusicPlayer.player.watchPlay(true)
-          }
-        }
+        store.dispatch("audio/initV4BGM", params.music);
       }
 
       // loading完毕
-      getApp().Scene.emit("ready")
-
+      getApp().Scene.emit("ready");
     }
 
     if (event == "fdkkMetadata") {
-      store.commit('fdkk/setMetadata', params.metadata)
+      store.commit("fdkk/setMetadata", params.metadata);
     }
 
-
     if (event == "toggleFdkkHotspot") {
-      if (params.status == 'open') {
+      if (params.status == "open") {
         store.commit("functions/setShowScenesList", false);
-        store.commit('fdkk/setShowToursList', false)
+        store.commit("fdkk/setShowToursList", false);
       }
     }
 
@@ -154,33 +147,28 @@ const handleMessage = (res) => {
       //   }, 50);
       // }
     }
-
-
   }
-}
+};
 
 onMounted(() => {
   nextTick(() => {
-    window.removeEventListener('message', handleMessage)
-    window.addEventListener('message', handleMessage)
-  })
-
-})
+    window.removeEventListener("message", handleMessage);
+    window.addEventListener("message", handleMessage);
+  });
+});
 
 onUnmounted(() => {
-  window.removeEventListener('message', handleMessage)
-})
+  window.removeEventListener("message", handleMessage);
+});
 
 const handleOther = (data) => {
   otherLink.value = data;
   rnd.value = Math.random();
-}
+};
 const handleChange = (data) => {
   embeM.value = data;
   rnd.value = Math.random();
-}
-
-
+};
 </script>
 
 <style lang="scss" scoped>
@@ -193,9 +181,9 @@ const handleChange = (data) => {
   right: 0;
   bottom: 0;
 
-  >iframe {
+  > iframe {
     width: 100%;
     height: 100%;
   }
 }
-</style>
+</style>

+ 21 - 33
packages/qjkankan-view/src/components/Pano/index.vue

@@ -13,17 +13,12 @@ import { getFdkkInfo } from "@/apis";
 import browser from "@/utils/browser";
 import config from "@/utils/config";
 
-//背景音乐
-// const musicPlayer = useMusicPlayer();
-
-// //解说音乐
-// const soundPlayer = useSoundPlayer();
-
 const store = useStore();
 const isMobile = computed(() => browser.isMobile());
 const lang = computed(() => config.lang);
 
 const currentScene = computed(() => store.getters["scene/currentScene"]);
+const isHasNormalBGM = computed(() => store.getters["audio/isHasNormalBGM"]);
 const scenesList = computed(() => store.getters["scene/list"]);
 const metadata = computed(() => store.getters["scene/metadata"]);
 const currentPlaying = computed(
@@ -35,7 +30,7 @@ const hadGetInfo = ref(false);
 const loadScene = async (currentScene) => {
   let app = await getApp();
   // await new Promise((r) => setTimeout(r, 10000));
-  console.error("loadScene",unref(currentScene));
+  console.error("loadScene", unref(currentScene));
   if (app.krpanoDom) {
     let { sceneCode, initVisual, someData } = currentScene;
     app.krpanoDom.call(
@@ -77,18 +72,6 @@ watch(
       console.log(store.getters["fdkk/fdkkBGM"]);
       if (store.getters["fdkk/fdkkBGM"]) {
         store.commit("fdkk/setFdkkBGM", "");
-        // useMusicPlayer.player.watchPlay(true);
-        // if (isMobile.value) {
-        //   console.log(
-        //     useMusicPlayer.player.isPlay,
-        //     "useMusicPlayer.player.isPlay"
-        //   );
-        //   if (useMusicPlayer.player.isPlay) {
-        //     setTimeout(() => {
-        //       musicPlayer.play();
-        //     }, 50);
-        //   }
-        // }
       }
 
       nextTick(() => {
@@ -106,21 +89,26 @@ watch(
 
           // v3
           if (data.data.isUpgrade === 0) {
-            // musicPlayer.pauseFromOther = true;
-            if (!browser.isMobile()) {
-              // musicPlayer.pause();
-            } else {
-              let flag =
-                data.data.bgMusic &&
-                data.data.bgMusic != "0" &&
-                data.data.bgMusic != "noMusic";
-              store.commit("fdkk/setV3FdkkBGM", flag);
-              // 该v3场景有背景音乐
-              // if (flag) {
-              //   musicPlayer.pause();
-              // }
-              // console.log(data.data.bgMusic && data.data.bgMusic != '0' && data.data.bgMusic != 'noMusic','==========');
+            store.dispatch("audio/pauseBGM");
+            // if (!browser.isMobile()) {
+            //   // musicPlayer.pause();
+            // } else {
+            let flag =
+              data.data.bgMusic &&
+              data.data.bgMusic != "0" &&
+              data.data.bgMusic != "noMusic";
+
+            store.commit("fdkk/setV3FdkkBGM", flag);
+            if (unref(isHasNormalBGM) && !flag) {
+              store.dispatch("audio/pauseBGM");
             }
+            // store.dispatch("audio/setV3BGM", flag);
+            // 该v3场景有背景音乐
+            // if (flag) {
+            //   musicPlayer.pause();
+            // }
+            // console.log(data.data.bgMusic && data.data.bgMusic != '0' && data.data.bgMusic != 'noMusic','==========');
+            // }
           }
         }
 

+ 5 - 3
packages/qjkankan-view/src/hooks/useAudio.js

@@ -37,7 +37,8 @@ async function initDefaultAudio() {
     })
 
     watch(currentAudio, (val) => {
-        if (unref(val).url.length > 0) {
+
+        if (unref(val) && unref(val).url.length > 0) {
             console.log('currentAudio', unref(val).url)
             if (unref(currentPlayer)) {
                 unref(currentPlayer).changeUrl(unref(val).url);
@@ -50,10 +51,10 @@ async function initDefaultAudio() {
     })
 }
 function initAudioPlayer() {
-
     if (!unref(isInit)) {
-        const player = createAudioPlayer(unref(currentAudio).url);
         isInit.value = true
+        console.log('initAudioPlayer');
+        const player = createAudioPlayer(unref(currentAudio).url);
         currentPlayer.value = player
         player.on('play', () => {
             console.log('play--22', player.isPlaying);
@@ -178,6 +179,7 @@ class AudioPlayer {
     async play() {
         try {
             if (!this._isPlaying) {
+                console.log('play--1');
                 await this.audio.play();
             }
 

+ 1 - 1
packages/qjkankan-view/src/store/modules/audio.js

@@ -45,7 +45,7 @@ export default {
         bgmList: (state) => [state.normalBGM, state.v3BGM, state.v4BGM, state.explanationBGM],
         currentAudio: (_, getters) => {
             const arr = Array.from(getters.bgmList).filter(i => i.url).sort((a, b) => b.order - a.order)
-            return arr.length > 0 ? arr[0] : [];
+            return arr.length > 0 ? arr[0] : false;
         },
 
         isCurrentPlaying: (state) => state.currentPlaying,