gemercheung 1 năm trước cách đây
mục cha
commit
374f29b27a

+ 53 - 36
miniprogram/components/ar-tracker/ar-tracker.js

@@ -35,6 +35,7 @@ Component({
   data: {
     loaded: false,
     isStartPlay1: false,
+    isVideoEnd1: false,
     isStartAudioPlay1: false,
     isStartPlay2: false,
     isStartPlay3: false,
@@ -52,24 +53,21 @@ Component({
       console.log('xr-scene', xrScene)
       this.triggerEvent('ready')
       this.innerAudioContext1 = wx.createInnerAudioContext({
-        useWebAudioImplement: false // 是否使用 WebAudio 作为底层音频驱动,默认关闭。对于短音频、播放频繁的音频建议开启此选项,开启后将获得更优的性能表现。由于开启此选项后也会带来一定的内存增长,因此对于长音频建议关闭此选项
+        useWebAudioImplement: true // 是否使用 WebAudio 作为底层音频驱动,默认关闭。对于短音频、播放频繁的音频建议开启此选项,开启后将获得更优的性能表现。由于开启此选项后也会带来一定的内存增长,因此对于长音频建议关闭此选项
       })
       this.innerAudioContext1.src = 'https://houseoss.4dkankan.com/mini-ar-test/AR/01/audio1.MP3'
-      this.innerAudioContext1.onPlay = () => {
+      this.innerAudioContext1.onPlay(() => {
+        console.warn('innerAudioContext1 play')
         this.setData({
           isStartAudioPlay1: true
         })
-      }
-      this.innerAudioContext1.onPause = () => {
-        this.setData({
-          isStartAudioPlay1: false
-        })
-      }
-      this.innerAudioContext1.onEnded = () => {
+      })
+
+      this.innerAudioContext1.onEnded(() => {
         this.setData({
-          isStartAudioPlay1: false
+          isStartAudioPlay1: false,
         })
-      }
+      })
       console.log('this.innerAudioContext1', this.innerAudioContext1)
 
     },
@@ -109,39 +107,56 @@ Component({
 
       this.video1 = video
       this.video12 = video12
+      console.log('this.video1', this.video1)
+      this.video1.onPlay = () => {
+        console.warn('video1 playing')
+        this.setData({
+          isVideoEnd1: false
+        })
+      }
 
       this.video1.onEnd = () => {
+        console.warn('video1 ended')
         this.innerAudioContext1 && this.innerAudioContext1.play()
+        this.setData({
+          isVideoEnd1: true
+        })
         this.video12 && this.video12.play();
-
       }
-
       const animator = el.getComponent("animator");
       this.animator1 = animator
-      // getPrimitivesByNodeName
+
+      console.warn('this.animator1', this.animator1)
       const othergltf = this.scene.assets.getAsset("gltf", "item1")
+
       // console.error('meshes', gltf.meshes)
 
-      // mesh_video01_16054map
-      // mesh_video_16024video1
-      // mesh_video02_16030video2
+      // mesh_video1_16978video1
+      //mesh_video2_16942video2
 
-      console.log('1', gltf.getPrimitivesByMeshName('mesh_video_16024video1'))
-      console.log('2', gltf.getPrimitivesByMeshName('mesh_video02_16030video2'))
+      // console.log('1', gltf.getPrimitivesByMeshName('mesh_video1_16978video1'))
+      // console.log('2', gltf.getPrimitivesByMeshName('mesh_video2_16942video2'))
 
-      console.error('othergltf', othergltf)
-      for (const mesh of othergltf.model.meshes) {
-        // mesh.material = newMat
-        console.warn('mesh', mesh.name)
-      }
 
-      for (const mesh of gltf.getPrimitivesByNodeName('node_video1_-1630')) {
+      // console.error('othergltf', othergltf)
+      // for (const mesh of gltf.meshes) {
+      //   // mesh.material = newMat
+      //   console.warn('gltf-m', mesh)
+      // }
+
+
+      // for (const mesh of othergltf.model.meshes) {
+      //   // mesh.material = newMat
+      //   console.warn('othergltf-m', mesh.name)
+      // }
+
+      for (const mesh of gltf.getPrimitivesByNodeName('node_video1_-7064')) {
         mesh.material = newMat
-        console.warn('mesh1', mesh)
+        // console.warn('mesh1', mesh)
       }
-      for (const mesh of gltf.getPrimitivesByNodeName('node_video2_-1646')) {
+      for (const mesh of gltf.getPrimitivesByNodeName('node_video2_-7072')) {
         mesh.material = newMat2
-        console.warn('mesh2', mesh)
+        // console.warn('mesh2', mesh)
       }
 
     },
@@ -175,13 +190,15 @@ Component({
         if (type === 1) {
           console.warn('play 1')
           if (this.video1) {
-            this.data.isStartPlay1 ? this.video1.resume() : this.video1.play()
-            // this.data.isStartAudioPlay1 ? this.innerAudioContext1.resume() : this.innerAudioContext1.play()
-
+            if (this.data.isStartAudioPlay1) {
+              this.data.isStartPlay1 && this.innerAudioContext1.play()
+            } else {
+              console.log('play 1 video', this.data.isStartPlay1, this.data.isVideoEnd1)
+              this.data.isStartPlay1 ? !this.data.isVideoEnd1 ? this.video1.resume() : this.video1.play() : this.video1.play()
+            }
           }
           if (this.animator1) {
-            // this.data.isStartPlay1 ? this.animator1.resume('dd') : this.animator1.play('dd')
-            this.animator1.play('dd')
+            this.data.isStartPlay1 ? this.animator1.resume('dd2') : this.animator1.play('dd2')
           }
           this.setData({
             isStartPlay1: true
@@ -230,9 +247,9 @@ Component({
         if (this.innerAudioContext1 && this.data.isStartAudioPlay1) {
           this.innerAudioContext1.pause()
         }
-        // if (this.animator1) {
-        //   this.animator1.pause('Animation')
-        // }
+        if (this.animator1) {
+          this.animator1.pause('dd2')
+        }
       }
       if (type === 2) {
         console.warn('pause 2')

+ 3 - 3
miniprogram/components/ar-tracker/ar-tracker.wxml

@@ -2,14 +2,14 @@
 
   <xr-assets bind:progress="handleAssetsProgress" bind:loaded="handleAssetsLoaded">
 
-    <xr-asset-load type="gltf" asset-id="item1" src="https://houseoss.4dkankan.com/mini-ar-test/AR/01/dd3/dd3.gltf" options="preserveRaw: true" />
+    <xr-asset-load type="gltf" asset-id="item1" src="https://houseoss.4dkankan.com/mini-ar-test/AR/01/ddn02/ddn02.gltf" options="preserveRaw: true" />
     <xr-asset-load type="gltf" asset-id="item2" src="https://houseoss.4dkankan.com/mini-ar-test/AR/2/gc99.glb" />
     <xr-asset-load type="gltf" asset-id="item3" src="https://houseoss.4dkankan.com/mini-ar-test/mtgj.glb" />
 
-    <xr-asset-load type="video-texture" asset-id="item1-v" src="https://houseoss.4dkankan.com/mini-ar-test/AR/01/video1.mp4" options="autoPlay:false,loop:false,abortAudio:false,placeHolder:'https://houseoss.4dkankan.com/mini-ar-test/AR/01/video1.mp4?x-oss-process=video/snapshot,t_0,f_jpg,w_1000,m_fast,ar_auto'" />
+    <xr-asset-load type="video-texture" asset-id="item1-v" src="https://houseoss.4dkankan.com/mini-ar-test/AR/01/video1_480.mp4" options="autoPlay:false,loop:false,abortAudio:false,placeHolder:'https://houseoss.4dkankan.com/mini-ar-test/AR/01/video1_480.mp4?x-oss-process=video/snapshot,t_0,f_jpg,w_1000,m_fast,ar_auto'" />
     <xr-asset-material asset-id="item1-m" effect="simple" uniforms="u_baseColorMap: video-item1-v" />
 
-    <xr-asset-load type="video-texture" asset-id="item12-v" src="https://houseoss.4dkankan.com/mini-ar-test/AR/01/video2.mp4" options="autoPlay:true,loop:true,abortAudio:true,placeHolder:'https://houseoss.4dkankan.com/mini-ar-test/AR/01/video2.mp4?x-oss-process=video/snapshot,t_0,f_jpg,w_1000,m_fast,ar_auto'" />
+    <xr-asset-load type="video-texture" asset-id="item12-v" src="https://houseoss.4dkankan.com/mini-ar-test/AR/01/video2_480.mp4" options="autoPlay:true,loop:true,abortAudio:true,placeHolder:'https://houseoss.4dkankan.com/mini-ar-test/AR/01/video2_480.mp4?x-oss-process=video/snapshot,t_0,f_jpg,w_1000,m_fast,ar_auto'" />
     <xr-asset-material asset-id="item12-m" effect="simple" uniforms="u_baseColorMap: video-item12-v" />