From 79f521ce63909fff82de9f624911d6c63e84fb53 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 23 三月 2022 21:08:45 +0800
Subject: [PATCH] 修复时间规则新增后视图未动态更新的bug
---
src/components/wasmPlayer/wasm/player.js | 81 ++++++++++++++--------------------------
1 files changed, 29 insertions(+), 52 deletions(-)
diff --git a/src/components/wasmPlayer/wasm/player.js b/src/components/wasmPlayer/wasm/player.js
index 307117f..787e02c 100644
--- a/src/components/wasmPlayer/wasm/player.js
+++ b/src/components/wasmPlayer/wasm/player.js
@@ -1,5 +1,5 @@
-import { PCMPlayer } from './pcm-player'
-import { WebGLPlayer } from './webgl'
+import { PCMPlayer } from "./pcm-player"
+import { WebGLPlayer } from "./webgl"
export function Player() {
this.hPlayer = 0
@@ -10,7 +10,7 @@
this.timeLabel = null
this.timeTrack = null
this.CurPos = 0
- this.displayDuration = '00:00:00'
+ this.displayDuration = "00:00:00"
this.pcmPlayer = null
this.webglPlayer = null
@@ -24,14 +24,7 @@
}
}
-Player.prototype.play = function(
- url,
- canvas,
- isStream,
- timeTrack,
- timeLabel,
- payload
-) {
+Player.prototype.play = function(url, canvas, isStream, timeTrack, timeLabel, payload) {
if (this.hPlayer != 0) return
this.MediaName = url
@@ -48,50 +41,48 @@
This.seek(This.timeTrack.value)
}
- this.TurboWorker = new Worker('/libs/wasmPlayer/turbo.js')
+ this.TurboWorker = new Worker("/libs/wasmPlayer/turbo.js")
this.hPlayer = 1
this.PlayOrPause = 1
this.TurboWorker.onmessage = function(evt) {
switch (evt.data.command) {
- case 'initialized': {
+ case "initialized": {
This.TurboWorker.postMessage({
- command: 'play',
+ command: "play",
media_name: url,
other: isStream,
- payload: payload,
+ payload: payload
})
break
}
- case 'create_video': {
+ case "create_video": {
This.VideoParam = evt.data.param //{duration:xxx,width:xxx,height:xxx}
This.webglPlayer = new WebGLPlayer(This.canvas)
if (This.timeTrack) {
This.timeTrack.min = 0
This.timeTrack.max = This.VideoParam.duration
This.timeTrack.value = 0
- This.displayDuration = This.formatTime(
- This.VideoParam.duration / 1000
- )
+ This.displayDuration = This.formatTime(This.VideoParam.duration / 1000)
}
This.startTrackTimer()
This.statusCallback(0)
break
}
- case 'create_audio': {
+ case "create_audio": {
This.AudioParam = evt.data.param //{channel:Channel,sample_rate:SampleRate}
This.pcmPlayer = new PCMPlayer({
- encoding: '16bitInt',
+ encoding: "16bitInt",
channels: This.AudioParam.channel,
sampleRate: This.AudioParam.sample_rate,
- flushingTime: 5000,
+ flushingTime: 5000
})
This.statusCallback(1)
break
}
- case 'deliver_video': {
+ case "deliver_video": {
if (!This.isStream && This.preload && This.preloadFlag == 0) {
This.preloadFlag = 1
This.pause()
@@ -100,24 +91,20 @@
//sample:{time_stamp:xxx,data:xxx}
This.CurPos = evt.data.sample.time_stamp
- This.webglPlayer.renderFrame(
- evt.data.sample.buf,
- This.VideoParam.width,
- This.VideoParam.height
- )
+ This.webglPlayer.renderFrame(evt.data.sample.buf, This.VideoParam.width, This.VideoParam.height)
break
}
- case 'deliver_audio': {
+ case "deliver_audio": {
//sample:{time_stamp:xxx,data:xxx}
This.pcmPlayer.play(evt.data.sample.buf)
break
}
- case 'play_failed': {
+ case "play_failed": {
This.statusCallback(-1)
This.stop()
break
}
- case 'play_end': {
+ case "play_end": {
if (This.loop) {
This.seek(0)
}
@@ -133,19 +120,19 @@
Player.prototype.pause = function() {
if (this.hPlayer == 0 || this.PlayOrPause == 0) return
this.PlayOrPause = 0
- this.TurboWorker.postMessage({ command: 'pause' })
+ this.TurboWorker.postMessage({ command: "pause" })
}
Player.prototype.resume = function() {
if (this.hPlayer == 0 || this.PlayOrPause == 1) return
this.PlayOrPause = 1
- this.TurboWorker.postMessage({ command: 'resume' })
+ this.TurboWorker.postMessage({ command: "resume" })
}
Player.prototype.stop = function() {
if (this.hPlayer == 0) return
this.hPlayer = 0
- this.TurboWorker.postMessage({ command: 'stop' })
+ this.TurboWorker.postMessage({ command: "stop" })
this.stopTrackTimer()
if (this.pcmPlayer) {
this.pcmPlayer.destroy()
@@ -156,15 +143,15 @@
Player.prototype.seek = function(ms) {
if (this.hPlayer == 0) return
- this.TurboWorker.postMessage({ command: 'seek', pos: ms })
+ this.TurboWorker.postMessage({ command: "seek", pos: ms })
if (this.pcmPlayer != null) {
this.pcmPlayer.destroy()
this.pcmPlayer = new PCMPlayer({
- encoding: '16bitInt',
+ encoding: "16bitInt",
channels: this.AudioParam.channel,
sampleRate: this.AudioParam.sample_rate,
- flushingTime: 5000,
+ flushingTime: 5000
})
}
}
@@ -177,15 +164,12 @@
if (this.webglPlayer) this.webglPlayer.exitfullscreen()
}
-
Player.prototype.startTrackTimer = function() {
var This = this
this.trackTimer = setInterval(function() {
if (This.timeTrack) This.timeTrack.value = This.CurPos
- if (This.timeLabel)
- This.timeLabel.innerHTML =
- This.formatTime(This.CurPos / 1000) + '/' + This.displayDuration
+ if (This.timeLabel) This.timeLabel.innerHTML = This.formatTime(This.CurPos / 1000) + "/" + This.displayDuration
}, 500)
}
@@ -197,16 +181,9 @@
}
Player.prototype.formatTime = function(s) {
- var h =
- Math.floor(s / 3600) < 10
- ? '0' + Math.floor(s / 3600)
- : Math.floor(s / 3600)
- var m =
- Math.floor((s / 60) % 60) < 10
- ? '0' + Math.floor((s / 60) % 60)
- : Math.floor((s / 60) % 60)
- var s =
- Math.floor(s % 60) < 10 ? '0' + Math.floor(s % 60) : Math.floor(s % 60)
+ var h = Math.floor(s / 3600) < 10 ? "0" + Math.floor(s / 3600) : Math.floor(s / 3600)
+ var m = Math.floor((s / 60) % 60) < 10 ? "0" + Math.floor((s / 60) % 60) : Math.floor((s / 60) % 60)
+ var s = Math.floor(s % 60) < 10 ? "0" + Math.floor(s % 60) : Math.floor(s % 60)
- return h + ':' + m + ':' + s
+ return h + ":" + m + ":" + s
}
--
Gitblit v1.8.0