From 9415b6325fd643a4c990c469bf169e92ce0fe0f7 Mon Sep 17 00:00:00 2001 From: Tianxiao Wang Date: Thu, 28 Mar 2019 13:06:41 +0800 Subject: [PATCH] fix: Cannot read property appendBuffer of undefined (#48) --- packages/griffith-mp4/src/mse/controller.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/griffith-mp4/src/mse/controller.js b/packages/griffith-mp4/src/mse/controller.js index 73a7b55a..a8c7b812 100644 --- a/packages/griffith-mp4/src/mse/controller.js +++ b/packages/griffith-mp4/src/mse/controller.js @@ -20,8 +20,6 @@ export default class MSE { } handleSourceOpen = () => { - this.mediaSource.removeEventListener('sourceopen', this.handleSourceOpen) - const mime = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' this.sourceBuffer = this.mediaSource.addSourceBuffer(mime) this.sourceBuffer.addEventListener('updateend', () => { @@ -79,7 +77,10 @@ export default class MSE { FMP4.ftyp(), FMP4.moov(this.mp4Probe.mp4Data) ) - this.appendBuffer(rawData) + + this.mediaSource.addEventListener('sourceopen', () => { + this.appendBuffer(rawData) + }) }) } @@ -156,7 +157,7 @@ export default class MSE { if (this.mediaSource.readyState === 'open') { if (offsetInterVal[1] === videoSamplesLength && !this.mseUpdating) { - this.mediaSource.endOfStream() + this.destroy() } else if (this.shouldFetchNextSegment()) { this.seek() }