From 4a800a8fc83c6bd1f86a8e847b079a51a7532c09 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 20 七月 2022 15:05:58 +0800 Subject: [PATCH] 修复国标配置的bug --- src/components/player/wfs/controller/buffer-controller.js | 95 +++++++++++++++++++++++------------------------ 1 files changed, 46 insertions(+), 49 deletions(-) diff --git a/src/components/player/wfs/controller/buffer-controller.js b/src/components/player/wfs/controller/buffer-controller.js index 25b3211..31c5e27 100644 --- a/src/components/player/wfs/controller/buffer-controller.js +++ b/src/components/player/wfs/controller/buffer-controller.js @@ -2,17 +2,12 @@ * Buffer Controller */ /* eslint-disable */ -import Event from '../events'; -import EventHandler from '../event-handler'; +import Event from "../events"; +import EventHandler from "../event-handler"; class BufferController extends EventHandler { constructor(wfs) { - super( - wfs, - Event.MEDIA_ATTACHING, - Event.BUFFER_APPENDING, - Event.BUFFER_RESET - ); + super(wfs, Event.MEDIA_ATTACHING, Event.BUFFER_APPENDING, Event.BUFFER_RESET); this.mediaSource = null; this.media = null; @@ -27,10 +22,10 @@ this.onsbue = this.onSBUpdateEnd.bind(this); this.browserType = 0; - if (navigator.userAgent.toLowerCase().indexOf('firefox') !== -1) { + if (navigator.userAgent.toLowerCase().indexOf("firefox") !== -1) { this.browserType = 1; } - this.mediaType = 'H264Raw'; + this.mediaType = "H264Raw"; this.websocketName = undefined; this.channelName = undefined; @@ -54,9 +49,9 @@ this.onmso = this.onMediaSourceOpen.bind(this); this.onmse = this.onMediaSourceEnded.bind(this); this.onmsc = this.onMediaSourceClose.bind(this); - ms.addEventListener('sourceopen', this.onmso); - ms.addEventListener('sourceended', this.onmse); - ms.addEventListener('sourceclose', this.onmsc); + ms.addEventListener("sourceopen", this.onmso); + ms.addEventListener("sourceended", this.onmse); + ms.addEventListener("sourceclose", this.onmsc); // link video and media Source media.src = URL.createObjectURL(ms); } @@ -74,11 +69,11 @@ } onMediaSourceClose() { - console.log('media source closed'); + // console.log('media source closed'); } onMediaSourceEnded() { - console.log('media source ended'); + console.log("media source ended"); } onSBUpdateEnd(event) { @@ -99,10 +94,10 @@ let mediaSource = this.mediaSource; if (mediaSource) { // once received, don't listen anymore to sourceopen event - mediaSource.removeEventListener('sourceopen', this.onmso); + mediaSource.removeEventListener("sourceopen", this.onmso); } - if (this.mediaType === 'FMp4') { + if (this.mediaType === "FMp4") { this.checkPendingTracks(); } @@ -116,13 +111,13 @@ } checkPendingTracks() { - this.createSourceBuffers({ tracks: 'video', mimeType: '' }); + this.createSourceBuffers({ tracks: "video", mimeType: "" }); this.pendingTracks = {}; } onBufferReset(data) { - if (this.mediaType === 'H264Raw') { - this.createSourceBuffers({ tracks: 'video', mimeType: data.mimeType }); + if (this.mediaType === "H264Raw") { + this.createSourceBuffers({ tracks: "video", mimeType: data.mimeType }); } } @@ -130,15 +125,15 @@ var sourceBuffer = this.sourceBuffer, mediaSource = this.mediaSource; let mimeType; - if (tracks.mimeType === '') { - mimeType = 'video/mp4;codecs=avc1.420028'; // avc1.42c01f avc1.42801e avc1.640028 avc1.420028 + if (tracks.mimeType === "") { + mimeType = "video/mp4;codecs=avc1.420028"; // avc1.42c01f avc1.42801e avc1.640028 avc1.420028 } else { - mimeType = 'video/mp4;codecs=' + tracks.mimeType; + mimeType = "video/mp4;codecs=" + tracks.mimeType; } try { - let sb = (sourceBuffer['video'] = mediaSource.addSourceBuffer(mimeType)); - sb.addEventListener('updateend', this.onsbue); + let sb = (sourceBuffer["video"] = mediaSource.addSourceBuffer(mimeType)); + sb.addEventListener("updateend", this.onsbue); track.buffer = sb; } catch (err) {} this.wfs.trigger(Event.BUFFER_CREATED, { tracks: tracks }); @@ -152,14 +147,16 @@ if (Object.keys(sourceBuffer).length) { if (this.media.error) { this.segments = []; - console.log( - 'trying to append although a media error occured, flush segment and abort' - ); + // console.log( + // 'trying to append although a media error occured, flush segment and abort' + // ); return; } if (this.appending) { return; } + + wfs.playerStatus = 1; if (segments && segments.length) { var segment = segments.shift(); @@ -175,27 +172,27 @@ } catch (err) { // in case any error occured while appending, put back segment in segments table segments.unshift(segment); - var event = { type: ErrorTypes.MEDIA_ERROR }; - if (err.code !== 22) { - if (this.appendError) { - this.appendError++; - } else { - this.appendError = 1; - } - event.details = ErrorDetails.BUFFER_APPEND_ERROR; - event.frag = this.fragCurrent; - if (this.appendError > wfs.config.appendErrorMaxRetry) { - segments = []; - event.fatal = true; - return; - } else { - event.fatal = false; - } - } else { - this.segments = []; - event.details = ErrorDetails.BUFFER_FULL_ERROR; - return; - } + // var event = { type: ErrorTypes.MEDIA_ERROR }; + // if (err.code !== 22) { + // if (this.appendError) { + // this.appendError++; + // } else { + // this.appendError = 1; + // } + // event.details = ErrorDetails.BUFFER_APPEND_ERROR; + // event.frag = this.fragCurrent; + // if (this.appendError > wfs.config.appendErrorMaxRetry) { + // segments = []; + // event.fatal = true; + // return; + // } else { + // event.fatal = false; + // } + // } else { + // this.segments = []; + // event.details = ErrorDetails.BUFFER_FULL_ERROR; + // return; + // } } } } -- Gitblit v1.8.0