| 
														
															@@ -1,4 +1,4 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import { defineComponent, onMounted, reactive, ref, onUnmounted } from 'vue'; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { defineComponent, onMounted, reactive, ref, onUnmounted, watch } from 'vue'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { useRoute, useRouter } from 'vue-router'; 
														 | 
														
														 | 
														
															 import { useRoute, useRouter } from 'vue-router'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { browser } from "@/helpers/utils" 
														 | 
														
														 | 
														
															 import { browser } from "@/helpers/utils" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import styles from './index.module.less'; 
														 | 
														
														 | 
														
															 import styles from './index.module.less'; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -11,6 +11,7 @@ import backImg from "../images/back.png"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { 
														 | 
														
														 | 
														
															 import { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   postMessage 
														 | 
														
														 | 
														
															   postMessage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } from '@/helpers/native-message'; 
														 | 
														
														 | 
														
															 } from '@/helpers/native-message'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { usePageVisibility } from '@vant/use'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export default defineComponent({ 
														 | 
														
														 | 
														
															 export default defineComponent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   name: 'playCreation', 
														 | 
														
														 | 
														
															   name: 'playCreation', 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -24,11 +25,25 @@ export default defineComponent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     const playType = resourceUrl.lastIndexOf('mp4') !== -1 ? 'Video' : 'Audio' 
														 | 
														
														 | 
														
															     const playType = resourceUrl.lastIndexOf('mp4') !== -1 ? 'Video' : 'Audio' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     const lottieDom = ref() 
														 | 
														
														 | 
														
															     const lottieDom = ref() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     const landscapeScreen = ref(false) 
														 | 
														
														 | 
														
															     const landscapeScreen = ref(false) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    let _plrl:any 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const loaded = ref(false) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const { registerDrag, unRegisterDrag } = landscapeScreenDrag() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    watch(landscapeScreen, ()=>{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if(landscapeScreen.value){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        registerDrag() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }else{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        unRegisterDrag() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     function initPlay(){ 
														 | 
														
														 | 
														
															     function initPlay(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       const id = playType === "Audio" ? "#audioMediaSrc" : "#videoMediaSrc"; 
														 | 
														
														 | 
														
															       const id = playType === "Audio" ? "#audioMediaSrc" : "#videoMediaSrc"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      const _plrl = new Plyr(id, { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _plrl = new Plyr(id, { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         controls: ["play-large", "play", "progress", "current-time", "duration"] 
														 | 
														
														 | 
														
															         controls: ["play-large", "play", "progress", "current-time", "duration"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       }); 
														 | 
														
														 | 
														
															       }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      // 在微信中运行的时候,微信没有开放自动加载资源的权限,所以要等播放之后才显示播放控制器 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _plrl.on('loadedmetadata', () => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        loaded.value = true 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       // 创建音波数据 
														 | 
														
														 | 
														
															       // 创建音波数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if(playType === "Audio"){ 
														 | 
														
														 | 
														
															       if(playType === "Audio"){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const audioDom = document.querySelector("#audioMediaSrc") as HTMLAudioElement 
														 | 
														
														 | 
														
															         const audioDom = document.querySelector("#audioMediaSrc") as HTMLAudioElement 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -44,7 +59,61 @@ export default defineComponent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }); 
														 | 
														
														 | 
														
															         }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        /** 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 注册 横屏时候的自定义拖动事件 解决旋转时候拖动进度条坐标的问题 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    function landscapeScreenDrag() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      let progressBar: HTMLElement 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      function onDown(e: MouseEvent | TouchEvent) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        e.preventDefault(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        e.stopPropagation(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // 记录拖动之前的状态 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const playing = _plrl.playing 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        _plrl.pause() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const isTouchEv = isTouchEvent(e); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const event = isTouchEv ? e.touches[0] : e; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        setProgress(event) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        function onUp() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          document.removeEventListener( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            isTouchEv ? 'touchmove' : 'mousemove', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            onMove 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          document.removeEventListener(isTouchEv ? 'touchend' : 'mouseup', onUp); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          playing && _plrl.play()  // 之前是播放状态  就播放 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        function onMove(e: MouseEvent | TouchEvent){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          e.preventDefault(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          e.stopPropagation(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          const event = isTouchEvent(e) ? e.touches[0] : e; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          setProgress(event) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        function setProgress(event: MouseEvent | Touch) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          const {top, height} = progressBar.getBoundingClientRect(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          const progress = (event.clientY - top) / height; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          const progressNum = Math.min(Math.max(progress, 0), 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          _plrl.currentTime = progressNum * _plrl.duration 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        document.addEventListener(isTouchEv ? 'touchmove' : 'mousemove', onMove); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        document.addEventListener(isTouchEv ? 'touchend' : 'mouseup', onUp); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      function registerDrag() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if(!progressBar){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          progressBar = document.querySelector('#landscapeScreenPlay .plyr__progress__container') as HTMLElement; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        progressBar.addEventListener('mousedown', onDown); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        progressBar.addEventListener('touchstart', onDown); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      function unRegisterDrag() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        progressBar.removeEventListener('mousedown', onDown); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        progressBar.removeEventListener('touchstart', onDown); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      return { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        registerDrag, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        unRegisterDrag 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    function isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      return window.TouchEvent && e instanceof window.TouchEvent; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 音频可视化 
														 | 
														
														 | 
														
															      * 音频可视化 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param audioDom 
														 | 
														
														 | 
														
															      * @param audioDom 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param canvasDom 
														 | 
														
														 | 
														
															      * @param canvasDom 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -72,7 +141,8 @@ export default defineComponent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         fillCanvasBackground(ctx, w, h, canvFillColor) 
														 | 
														
														 | 
														
															         fillCanvasBackground(ctx, w, h, canvFillColor) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           // 可视化 
														 | 
														
														 | 
														
															           // 可视化 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const dataLen = data.length 
														 | 
														
														 | 
														
															         const dataLen = data.length 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        const step = (w / 2 - lineGap * dataLen) / dataLen 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        let step = (w / 2 - lineGap * dataLen) / dataLen 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        step < 1 && (step = 1) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const midX = w / 2 
														 | 
														
														 | 
														
															         const midX = w / 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         const midY = h / 2 
														 | 
														
														 | 
														
															         const midY = h / 2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let xLeft = midX 
														 | 
														
														 | 
														
															         let xLeft = midX 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -157,15 +227,24 @@ export default defineComponent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     function updateLandscapeScreenState(){ 
														 | 
														
														 | 
														
															     function updateLandscapeScreenState(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      if(window.innerWidth > window.innerHeight){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        landscapeScreen.value = false 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      }else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        landscapeScreen.value = true 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      // 下一帧 计算  横竖屏切换太快  获取的宽高不准 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      requestAnimationFrame(()=>{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if(window.innerWidth > window.innerHeight){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          landscapeScreen.value = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }else{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          landscapeScreen.value = true 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    handlerLandscapeScreen() 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    const pageVisibility = usePageVisibility(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    watch(pageVisibility, value => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if (value === 'hidden') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        _plrl?.pause(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     onMounted(()=>{ 
														 | 
														
														 | 
														
															     onMounted(()=>{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       initPlay() 
														 | 
														
														 | 
														
															       initPlay() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      handlerLandscapeScreen() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }) 
														 | 
														
														 | 
														
															     }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     onUnmounted(()=>{ 
														 | 
														
														 | 
														
															     onUnmounted(()=>{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if(isApp){ 
														 | 
														
														 | 
														
															       if(isApp){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -180,7 +259,7 @@ export default defineComponent({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }) 
														 | 
														
														 | 
														
															     }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return () => 
														 | 
														
														 | 
														
															     return () => 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    <div class={[styles.playCreation,landscapeScreen.value && styles.landscapeScreen]}> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    <div id="landscapeScreenPlay" class={[styles.playCreation,landscapeScreen.value && styles.landscapeScreen,!loaded.value && styles.notLoaded]}> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       <div class={styles.backBox}> 
														 | 
														
														 | 
														
															       <div class={styles.backBox}> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         <img class={styles.backImg} src={backImg}onClick={handlerBack} /> 
														 | 
														
														 | 
														
															         <img class={styles.backImg} src={backImg}onClick={handlerBack} /> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         <div class={styles.musicDetail}> 
														 | 
														
														 | 
														
															         <div class={styles.musicDetail}> 
														 |