Parcourir la source

fix: 同一个区域的音频需要保持开关状态, 最后一个点位到第一个点位black

xzw il y a 1 an
Parent
commit
d0ab0aadd1
2 fichiers modifiés avec 13 ajouts et 24 suppressions
  1. 5 19
      scene/public/static/js/main_2020_show.js
  2. 8 5
      scene/public/static/js/manage.js

+ 5 - 19
scene/public/static/js/main_2020_show.js

@@ -14670,27 +14670,12 @@ window.Modernizr = function(n, e, t) {
                         if(e.locations)e.locations = e.locations.filter(e=>e)
                         if(e.locations && e.locations.length == 0)return;
                         return e
-                    })     
-                
-                
-                }catch(e){console.log(e) }
-                
-                
-                
-                
-                
-                try{//处理一下导览数据 
-                    t.model.images = t.model.images.filter(e=>{
-                        if(!e.locations && !e.thumbnail_signed_src)return; //旧的曾有导览数据是错误的,将它删除  
-                        if(e.locations)e.locations = e.locations.filter(e=>e)
-                        if(e.locations && e.locations.length == 0)return;
-                        return e
-                    })    
+                    })      
                 }catch(e){console.log(e) }
                 
+                 
                 
-                
-                
+                settings.playTourNearBy = !DATA.tourFromStart
                 
                 
                 
@@ -59255,13 +59240,14 @@ class PanTransGuide{
                 aimNode = this.nodes[this.currentIndex]
             }
         }
+        let lastIndex = this.currentIndex
         if(!aimNode){
             this.moveIndex(axis == 'prev' ? -1 : 1)
             aimNode = this.nodes[this.currentIndex]
         }
         
         //let dis = this.player.model.panos.get(aimNode.panoId).position.distanceTo(this.player.position)
-        let moveStyle = /* dis < 10 ?  */"flyToPano" /* : "blackToPano" */
+        let moveStyle = (lastIndex == 0 && axis == 'prev' || this.currentIndex == 0 && axis != 'prev') ? "blackToPano" : "flyToPano" 
         this.player[moveStyle]({pano: this.player.model.panos.get(aimNode.panoId),quaternion:aimNode.quaternion})
        
     }

+ 8 - 5
scene/public/static/js/manage.js

@@ -2520,7 +2520,9 @@ function initByTHREE(THREE){
                 
             }
             
-            const pauseWhenGoNextPano = true //到有音频的地方先暂停,用户自己打开播放(后加的需求)
+            //const pauseWhenGoNextPano = true //到有音频的地方先暂停,用户自己打开播放(后加的需求)
+            const pauseWhenChangeArea = true
+            
             {//根据漫游点切换音频
                 let curAudio  
                 let bgmObject = SoundManager.list.find(e=>e.name == 'bgm')
@@ -2528,7 +2530,8 @@ function initByTHREE(THREE){
                     if(!window.DATA.panoAreas)return
                     let item = window.DATA.panoAreas.find(e=>e.panos.some(a=>a == pano.id))
                     let areaAudio = item?.audio && item.audio[1]
-                    if(areaAudio != curAudio ){   
+                    if(areaAudio != curAudio ){
+                        pauseWhenChangeArea && manage.switchBgmState(false)
                         let canPlay = !bgmObject.audio.paused || bgmObject.canplay() && !(SoundManager.currentAudio && SoundManager.currentAudio != bgmObject && SoundManager.currentAudio.src) //没有其他音频在播放的话就可以播      //!pl
                         SoundManager.setSrc('bgm', areaAudio || window.DATA.backgroundMusic, areaAudio ? (item.name +':'+item.audio[0]) : '全局背景音') 
                         curAudio = areaAudio
@@ -2547,9 +2550,9 @@ function initByTHREE(THREE){
                     }
                 }
                 player.on("flying.ended",(a,b,pano,d)=>{
-                    pauseWhenGoNextPano && manage.switchBgmState(false)
-                    setCurBgm(pano) 
-                })
+                    //pauseWhenGoNextPano && manage.switchBgmState(false)
+                    pano && setCurBgm(pano) 
+                }) 
                 player.on("mode.changed", ()=>{ //飞出后不播放 也不显示按钮
                     if(player.mode != 'panorama'){
                         SoundManager.pause('bgm')