From 4ff29e301de38488db0ff04f0209c99e37cf30b4 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期二, 07 十二月 2021 18:56:34 +0800
Subject: [PATCH] 对比库管理

---
 src/components/wasmPlayer/wasm/player.js |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/components/wasmPlayer/wasm/player.js b/src/components/wasmPlayer/wasm/player.js
index 4ac8f26..307117f 100644
--- a/src/components/wasmPlayer/wasm/player.js
+++ b/src/components/wasmPlayer/wasm/player.js
@@ -16,6 +16,12 @@
   this.webglPlayer = null
 
   this.trackTimer = null
+  this.loop = false
+  this.preload = true
+  this.preloadFlag = 0
+  this.statusCallback = (stat) => {
+    console.log(stat)
+  }
 }
 
 Player.prototype.play = function(
@@ -39,9 +45,6 @@
 
   var This = this
   this.timeTrack.oninput = function() {
-    This.seek(This.timeTrack.value)
-  }
-  this.timeTrack.onchange = function() {
     This.seek(This.timeTrack.value)
   }
 
@@ -72,6 +75,8 @@
           )
         }
         This.startTrackTimer()
+
+        This.statusCallback(0)
         break
       }
       case 'create_audio': {
@@ -82,9 +87,17 @@
           sampleRate: This.AudioParam.sample_rate,
           flushingTime: 5000,
         })
+
+        This.statusCallback(1)
         break
       }
       case 'deliver_video': {
+        if (!This.isStream && This.preload && This.preloadFlag == 0) {
+          This.preloadFlag = 1
+          This.pause()
+          This.statusCallback(0)
+        }
+
         //sample:{time_stamp:xxx,data:xxx}
         This.CurPos = evt.data.sample.time_stamp
         This.webglPlayer.renderFrame(
@@ -99,6 +112,18 @@
         This.pcmPlayer.play(evt.data.sample.buf)
         break
       }
+      case 'play_failed': {
+        This.statusCallback(-1)
+        This.stop()
+        break
+      }
+      case 'play_end': {
+        if (This.loop) {
+          This.seek(0)
+        }
+        break
+      }
+
       default:
         return
     }
@@ -148,6 +173,11 @@
   if (this.webglPlayer) this.webglPlayer.fullscreen()
 }
 
+Player.prototype.exitfullscreen = function() {
+  if (this.webglPlayer) this.webglPlayer.exitfullscreen()
+}
+
+
 Player.prototype.startTrackTimer = function() {
   var This = this
   this.trackTimer = setInterval(function() {

--
Gitblit v1.8.0