From 765402662f33906f48889e9b7eb48fa21d58eb6e Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Wed, 19 Dec 2018 18:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E7=AD=BE=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/uncompiled/artplayer-plugin-flv.js | 16 ++++++++++++++-- docs/uncompiled/artplayer-plugin-flv.js.map | 2 +- .../artplayer-plugin-flv/src/flvParse/index.js | 16 ++++++++++++++-- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/docs/uncompiled/artplayer-plugin-flv.js b/docs/uncompiled/artplayer-plugin-flv.js index 548e3255e..e37458853 100644 --- a/docs/uncompiled/artplayer-plugin-flv.js +++ b/docs/uncompiled/artplayer-plugin-flv.js @@ -542,7 +542,7 @@ classCallCheck(this, FlvParse); this.flv = flv; - this.uint8 = new Int8Array(0); + this.uint8 = new Uint8Array(0); this.index = 0; this.header = null; this.tags = []; @@ -556,7 +556,7 @@ console.log('flvFetchError', error); }); flv.on('flvFetching', function (value) { - _this.uint8 = mergeTypedArrays(_this.uint8, value); + _this.uint8 = mergeTypedArrays(_this.uint8, new Uint8Array(value)); console.log(_this.uint8.length); _this.parseHeader(); @@ -566,6 +566,9 @@ if (value) { _this.uint8 = value; + _this.index = 0; + _this.header = null; + _this.tags = []; _this.parseHeader(); // this.parseTags(); @@ -620,6 +623,15 @@ return tempUint8; } + }, { + key: "verifyTags", + value: function verifyTags() { + var state = this.tags.some(function (item) { + var tagType = item.tagType[0]; + return ![18, 9, 8].includes(tagType); + }); + console.log(state ? '验证不通过' : '验证通过'); + } }], [{ key: "getBodySum", value: function getBodySum(arr) { diff --git a/docs/uncompiled/artplayer-plugin-flv.js.map b/docs/uncompiled/artplayer-plugin-flv.js.map index 426fae051..e7da7cfe5 100644 --- a/docs/uncompiled/artplayer-plugin-flv.js.map +++ b/docs/uncompiled/artplayer-plugin-flv.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer-plugin-flv.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer-plugin-flv/node_modules/tiny-emitter/index.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer-plugin-flv/src/utils/index.js","../../packages/artplayer-plugin-flv/src/utils/checkSupport.js","../../packages/artplayer-plugin-flv/src/eventProxy.js","../../packages/artplayer-plugin-flv/src/creatWorker.js","../../packages/artplayer-plugin-flv/src/config.js","../../packages/artplayer-plugin-flv/src/creatMediaSource.js","../../packages/artplayer-plugin-flv/src/flvParse/fetchStream.js","../../packages/artplayer-plugin-flv/src/flvParse/readFile.js","../../packages/artplayer-plugin-flv/src/flvParse/index.js","../../packages/artplayer-plugin-flv/src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export class FlvError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'FlvError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new FlvError(msg);\n }\n}\n\nexport function mergeTypedArrays(a, b) {\n const c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n}\n","import { errorHandle } from '.';\n\nexport default function checkSupport(options) {\n const { mediaElement, url } = options;\n errorHandle(mediaElement instanceof HTMLVideoElement, 'The first parameter is not a video tag element');\n errorHandle(\n typeof url === 'string' || (url instanceof File && url.type === 'video/x-flv'),\n 'The second parameter is not a string type or flv file',\n );\n\n const MP4H264MimeCodec = 'video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"';\n const canPlay = mediaElement.canPlayType(MP4H264MimeCodec);\n errorHandle(\n window.MediaSource &&\n window.MediaSource.isTypeSupported(MP4H264MimeCodec) &&\n (canPlay === 'probably' || canPlay === 'maybe'),\n `Unsupported MIME type or codec: ${MP4H264MimeCodec}`,\n );\n\n errorHandle(typeof window.Promise === 'function', \"Unsupported 'Promise' method\");\n errorHandle(typeof window.fetch === 'function', \"Unsupported 'fetch' method\");\n errorHandle(typeof window.Worker === 'function', \"Unsupported 'Worker' method\");\n errorHandle(typeof window.ReadableStream === 'function', \"Unsupported 'ReadableStream' method\");\n}\n","export default class EventProxy {\n constructor() {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}","export default class CreatWorker {\n constructor() {\n this.workers = new Map();\n }\n\n static fnToStr(fn) {\n return `\n self.onmessage = event => {\n return self.postMessage((${fn}).apply(null, event.data));\n }\n `;\n }\n\n static create(fn) {\n const blob = new Blob([CreatWorker.fnToStr(fn)], {\n type: 'application/javascript',\n });\n const objectURL = window.URL.createObjectURL(blob);\n const worker = new Worker(objectURL);\n worker.kill = () => {\n URL.revokeObjectURL(objectURL);\n worker.terminate();\n };\n worker.post = args =>\n new Promise((resolve, reject) => {\n worker.onmessage = event => {\n resolve(event.data);\n };\n worker.onerror = error => {\n reject(error);\n };\n worker.postMessage(args);\n });\n return worker;\n }\n\n add(name, fn) {\n if (!this.workers.has(name)) {\n this.workers.set(name, CreatWorker.create(fn));\n }\n }\n\n run(name, ...args) {\n const worker = this.workers.get(name);\n return worker.post(args);\n }\n\n kill(name) {\n const worker = this.workers.get(name);\n worker.kill();\n }\n\n killAll() {\n this.workers.forEach(worker => {\n worker.kill();\n });\n }\n}\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers',\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange',\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen',\n ],\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults',\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove',\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart',\n ],\n },\n sourceBufferList: {\n propertys: [\n 'length',\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer',\n ],\n },\n};\n","import config from './config';\n\nexport default class CreatMediaSource {\n constructor(flv) {\n this.flv = flv;\n this.creatUrl();\n this.eventBind();\n }\n\n creatUrl() {\n const {\n options: { mediaElement },\n events: { destroyEvents },\n } = this.flv;\n this.mediaSource = new MediaSource();\n const url = URL.createObjectURL(this.mediaSource);\n destroyEvents.push(() => {\n URL.revokeObjectURL(url);\n });\n mediaElement.src = url;\n }\n\n eventBind() {\n const {\n events: { proxy },\n } = this.flv;\n\n config.mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.flv.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n config.sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.flv.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.flv.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n}\n","import { errorHandle } from '../utils';\n\nexport default function fetchStream(flv, url) {\n flv.emit('flvFetchStart');\n fetch(url).then(response => {\n errorHandle(\n response.ok && response.status >= 200 && response.status <= 299,\n `${response.status} ${response.statusText}`,\n );\n const contentType = response.headers.get('content-type');\n errorHandle(contentType.includes('x-flv'), 'The resource does not seem to be a flv file');\n return new Response(\n new ReadableStream({\n start(controller) {\n const reader = response.body.getReader();\n\n flv.on('destroy', () => {\n reader.cancel();\n });\n\n flv.on('readerCancel', () => {\n reader.cancel();\n });\n\n (function read() {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n flv.emit('flvFetchEnd');\n controller.close();\n return;\n }\n flv.emit('flvFetching', value);\n controller.enqueue(value);\n read();\n })\n .catch(error => {\n flv.emit('flvFetchError', error);\n });\n })();\n },\n cancel() {\n flv.emit('flvFetchCancel');\n },\n }),\n );\n });\n}\n","export default function readFile(flv, file) {\n flv.emit('flvFetchStart');\n const { proxy } = flv.events;\n const reader = new FileReader();\n proxy(reader, 'load', e => {\n const buffer = e.target.result;\n const uint8 = new Uint8Array(buffer);\n flv.emit('flvFetchEnd', uint8);\n });\n reader.readAsArrayBuffer(file);\n}\n","import fetchStream from './fetchStream';\nimport readFile from './readFile';\nimport { mergeTypedArrays } from '../utils';\n\nexport default class FlvParse {\n constructor(flv) {\n this.flv = flv;\n this.uint8 = new Int8Array(0);\n this.index = 0;\n this.header = null;\n this.tags = [];\n\n flv.on('flvFetchStart', () => {\n console.log('flvFetchStart');\n });\n\n flv.on('flvFetchCancel', () => {\n console.log('flvFetchCancel');\n });\n\n flv.on('flvFetchError', error => {\n console.log('flvFetchError', error);\n });\n\n flv.on('flvFetching', value => {\n this.uint8 = mergeTypedArrays(this.uint8, value);\n console.log(this.uint8.length);\n this.parseHeader();\n });\n\n flv.on('flvFetchEnd', value => {\n console.log('flvFetchEnd');\n if (value) {\n this.uint8 = value;\n this.parseHeader();\n // this.parseTags();\n }\n });\n\n const { url } = flv.options;\n if (typeof url === 'string') {\n fetchStream(flv, url);\n } else {\n readFile(flv, url);\n }\n }\n\n parseHeader() {\n if (this.uint8.length >= 13 && !this.header) {\n const header = {};\n header.signature = this.read(3);\n header.version = this.read(1);\n header.flags = this.read(1);\n header.headersize = this.read(4);\n this.header = header;\n this.read(4);\n console.log(this.header);\n }\n }\n\n parseTags() {\n while (this.index < this.uint8.length) {\n const tag = {};\n tag.tagType = this.read(1);\n tag.dataSize = this.read(3);\n tag.Timestamp = this.read(4);\n tag.StreamID = this.read(3);\n tag.body = this.read(FlvParse.getBodySum(tag.dataSize));\n this.tags.push(tag);\n this.read(4);\n }\n }\n\n read(length) {\n const tempUint8 = [];\n for (let i = 0; i < length; i += 1) {\n tempUint8.push(this.uint8[this.index]);\n this.index += 1;\n }\n return tempUint8;\n }\n\n static getBodySum(arr) {\n return arr[0] * 256 ** 2 + arr[1] * 256 + arr[2];\n }\n}\n","import Emitter from 'tiny-emitter';\nimport checkSupport from './utils/checkSupport';\nimport EventProxy from './eventProxy';\nimport CreatWorker from './creatWorker';\nimport CreatMediaSource from './creatMediaSource';\nimport FlvParse from './flvParse';\nimport * as utils from './utils';\nimport config from './config';\n\nlet id = 0;\nclass Flv extends Emitter {\n constructor(options) {\n super();\n this.options = Object.assign({}, Flv.DEFAULTS, options);\n console.log(this.options);\n checkSupport(this.options);\n id += 1;\n this.id = id;\n Flv.instances.push(this);\n }\n\n static get DEFAULTS() {\n return {\n mediaElement: '',\n url: '',\n };\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n load() {\n this.events = new EventProxy(this);\n this.workers = new CreatWorker(this);\n this.mediaSource = new CreatMediaSource(this);\n this.flvData = new FlvParse(this);\n }\n\n destroy() {\n this.events.destroy();\n this.workers.killAll();\n Flv.instances.splice(Flv.instances.indexOf(this), 1);\n this.emit('destroy');\n }\n}\n\nObject.defineProperty(Flv, 'instances', {\n value: [],\n});\n\nwindow.Flv = Flv;\nexport default Flv;\n"],"names":["_typeof","E","prototype","on","name","callback","ctx","e","push","fn","once","self","listener","off","apply","arguments","_","emit","data","slice","call","evtArr","i","len","length","evts","liveEvents","FlvError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","msg","mergeTypedArrays","a","b","c","set","checkSupport","options","mediaElement","url","HTMLVideoElement","File","type","MP4H264MimeCodec","canPlay","canPlayType","window","MediaSource","isTypeSupported","Promise","fetch","Worker","ReadableStream","EventProxy","destroyEvents","proxy","bind","target","option","addEventListener","removeEventListener","forEach","event","CreatWorker","workers","Map","has","create","worker","get","args","post","kill","blob","Blob","fnToStr","objectURL","URL","createObjectURL","revokeObjectURL","terminate","resolve","reject","onmessage","onerror","error","postMessage","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","CreatMediaSource","flv","creatUrl","eventBind","src","config","eventName","sourceBuffers","activeSourceBuffers","fetchStream","then","response","ok","status","statusText","contentType","headers","includes","Response","start","controller","reader","body","getReader","cancel","read","done","value","close","enqueue","catch","readFile","file","FileReader","buffer","result","uint8","Uint8Array","readAsArrayBuffer","FlvParse","Int8Array","index","header","tags","console","log","parseHeader","signature","version","flags","headersize","tag","tagType","dataSize","Timestamp","StreamID","getBodySum","tempUint8","arr","id","Flv","Object","assign","DEFAULTS","instances","flvData","destroy","killAll","splice","indexOf","utils","Emitter","defineProperty"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer-plugin-flv.js","sources":["../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer-plugin-flv/node_modules/tiny-emitter/index.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer-plugin-flv/src/utils/index.js","../../packages/artplayer-plugin-flv/src/utils/checkSupport.js","../../packages/artplayer-plugin-flv/src/eventProxy.js","../../packages/artplayer-plugin-flv/src/creatWorker.js","../../packages/artplayer-plugin-flv/src/config.js","../../packages/artplayer-plugin-flv/src/creatMediaSource.js","../../packages/artplayer-plugin-flv/src/flvParse/fetchStream.js","../../packages/artplayer-plugin-flv/src/flvParse/readFile.js","../../packages/artplayer-plugin-flv/src/flvParse/index.js","../../packages/artplayer-plugin-flv/src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","export class FlvError extends Error {\n constructor(message, context) {\n super(message);\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, context || this.constructor);\n }\n this.name = 'FlvError';\n }\n}\n\nexport function errorHandle(condition, msg) {\n if (!condition) {\n throw new FlvError(msg);\n }\n}\n\nexport function mergeTypedArrays(a, b) {\n const c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n}\n","import { errorHandle } from '.';\n\nexport default function checkSupport(options) {\n const { mediaElement, url } = options;\n errorHandle(mediaElement instanceof HTMLVideoElement, 'The first parameter is not a video tag element');\n errorHandle(\n typeof url === 'string' || (url instanceof File && url.type === 'video/x-flv'),\n 'The second parameter is not a string type or flv file',\n );\n\n const MP4H264MimeCodec = 'video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"';\n const canPlay = mediaElement.canPlayType(MP4H264MimeCodec);\n errorHandle(\n window.MediaSource &&\n window.MediaSource.isTypeSupported(MP4H264MimeCodec) &&\n (canPlay === 'probably' || canPlay === 'maybe'),\n `Unsupported MIME type or codec: ${MP4H264MimeCodec}`,\n );\n\n errorHandle(typeof window.Promise === 'function', \"Unsupported 'Promise' method\");\n errorHandle(typeof window.fetch === 'function', \"Unsupported 'fetch' method\");\n errorHandle(typeof window.Worker === 'function', \"Unsupported 'Worker' method\");\n errorHandle(typeof window.ReadableStream === 'function', \"Unsupported 'ReadableStream' method\");\n}\n","export default class EventProxy {\n constructor() {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n }\n\n proxy(target, name, callback, option = {}) {\n target.addEventListener(name, callback, option);\n this.destroyEvents.push(() => {\n target.removeEventListener(name, callback, option);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}","export default class CreatWorker {\n constructor() {\n this.workers = new Map();\n }\n\n static fnToStr(fn) {\n return `\n self.onmessage = event => {\n return self.postMessage((${fn}).apply(null, event.data));\n }\n `;\n }\n\n static create(fn) {\n const blob = new Blob([CreatWorker.fnToStr(fn)], {\n type: 'application/javascript',\n });\n const objectURL = window.URL.createObjectURL(blob);\n const worker = new Worker(objectURL);\n worker.kill = () => {\n URL.revokeObjectURL(objectURL);\n worker.terminate();\n };\n worker.post = args =>\n new Promise((resolve, reject) => {\n worker.onmessage = event => {\n resolve(event.data);\n };\n worker.onerror = error => {\n reject(error);\n };\n worker.postMessage(args);\n });\n return worker;\n }\n\n add(name, fn) {\n if (!this.workers.has(name)) {\n this.workers.set(name, CreatWorker.create(fn));\n }\n }\n\n run(name, ...args) {\n const worker = this.workers.get(name);\n return worker.post(args);\n }\n\n kill(name) {\n const worker = this.workers.get(name);\n worker.kill();\n }\n\n killAll() {\n this.workers.forEach(worker => {\n worker.kill();\n });\n }\n}\n","export default {\n mediaSource: {\n propertys: [\n 'activeSourceBuffers',\n 'duration',\n 'readyState',\n 'sourceBuffers',\n ],\n methods: [\n 'addSourceBuffer',\n 'endOfStream',\n 'removeSourceBuffer',\n 'clearLiveSeekableRange',\n 'setLiveSeekableRange',\n ],\n events: [\n 'sourceclose',\n 'sourceended',\n 'sourceopen',\n ],\n },\n sourceBuffer: {\n propertys: [\n 'mode',\n 'updating',\n 'buffered',\n 'timestampOffset',\n 'audioTracks',\n 'videoTracks',\n 'textTracks',\n 'appendWindowStart',\n 'appendWindowEnd',\n 'trackDefaults',\n ],\n methods: [\n 'appendBuffer',\n 'appendStream',\n 'abort',\n 'remove',\n ],\n events: [\n 'abort',\n 'error',\n 'update',\n 'updateend',\n 'updatestart',\n ],\n },\n sourceBufferList: {\n propertys: [\n 'length',\n ],\n events: [\n 'addsourcebuffer',\n 'removesourcebuffer',\n ],\n },\n};\n","import config from './config';\n\nexport default class CreatMediaSource {\n constructor(flv) {\n this.flv = flv;\n this.creatUrl();\n this.eventBind();\n }\n\n creatUrl() {\n const {\n options: { mediaElement },\n events: { destroyEvents },\n } = this.flv;\n this.mediaSource = new MediaSource();\n const url = URL.createObjectURL(this.mediaSource);\n destroyEvents.push(() => {\n URL.revokeObjectURL(url);\n });\n mediaElement.src = url;\n }\n\n eventBind() {\n const {\n events: { proxy },\n } = this.flv;\n\n config.mediaSource.events.forEach(eventName => {\n proxy(this.mediaSource, eventName, event => {\n this.flv.emit(`mediaSource:${event.type}`, event);\n });\n });\n\n config.sourceBufferList.events.forEach(eventName => {\n proxy(this.mediaSource.sourceBuffers, eventName, event => {\n this.flv.emit(`sourceBuffers:${event.type}`, event);\n });\n proxy(this.mediaSource.activeSourceBuffers, eventName, event => {\n this.flv.emit(`activeSourceBuffers:${event.type}`, event);\n });\n });\n }\n}\n","import { errorHandle } from '../utils';\n\nexport default function fetchStream(flv, url) {\n flv.emit('flvFetchStart');\n fetch(url).then(response => {\n errorHandle(\n response.ok && response.status >= 200 && response.status <= 299,\n `${response.status} ${response.statusText}`,\n );\n const contentType = response.headers.get('content-type');\n errorHandle(contentType.includes('x-flv'), 'The resource does not seem to be a flv file');\n return new Response(\n new ReadableStream({\n start(controller) {\n const reader = response.body.getReader();\n\n flv.on('destroy', () => {\n reader.cancel();\n });\n\n flv.on('readerCancel', () => {\n reader.cancel();\n });\n\n (function read() {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n flv.emit('flvFetchEnd');\n controller.close();\n return;\n }\n flv.emit('flvFetching', value);\n controller.enqueue(value);\n read();\n })\n .catch(error => {\n flv.emit('flvFetchError', error);\n });\n })();\n },\n cancel() {\n flv.emit('flvFetchCancel');\n },\n }),\n );\n });\n}\n","export default function readFile(flv, file) {\n flv.emit('flvFetchStart');\n const { proxy } = flv.events;\n const reader = new FileReader();\n proxy(reader, 'load', e => {\n const buffer = e.target.result;\n const uint8 = new Uint8Array(buffer);\n flv.emit('flvFetchEnd', uint8);\n });\n reader.readAsArrayBuffer(file);\n}\n","import fetchStream from './fetchStream';\nimport readFile from './readFile';\nimport { mergeTypedArrays } from '../utils';\n\nexport default class FlvParse {\n constructor(flv) {\n this.flv = flv;\n this.uint8 = new Uint8Array(0);\n this.index = 0;\n this.header = null;\n this.tags = [];\n\n flv.on('flvFetchStart', () => {\n console.log('flvFetchStart');\n });\n\n flv.on('flvFetchCancel', () => {\n console.log('flvFetchCancel');\n });\n\n flv.on('flvFetchError', error => {\n console.log('flvFetchError', error);\n });\n\n flv.on('flvFetching', value => {\n this.uint8 = mergeTypedArrays(this.uint8, new Uint8Array(value));\n console.log(this.uint8.length);\n this.parseHeader();\n });\n\n flv.on('flvFetchEnd', value => {\n console.log('flvFetchEnd');\n if (value) {\n this.uint8 = value;\n this.index = 0;\n this.header = null;\n this.tags = [];\n this.parseHeader();\n // this.parseTags();\n }\n });\n\n const { url } = flv.options;\n if (typeof url === 'string') {\n fetchStream(flv, url);\n } else {\n readFile(flv, url);\n }\n }\n\n parseHeader() {\n if (this.uint8.length >= 13 && !this.header) {\n const header = {};\n header.signature = this.read(3);\n header.version = this.read(1);\n header.flags = this.read(1);\n header.headersize = this.read(4);\n this.header = header;\n this.read(4);\n console.log(this.header);\n }\n }\n\n parseTags() {\n while (this.index < this.uint8.length) {\n const tag = {};\n tag.tagType = this.read(1);\n tag.dataSize = this.read(3);\n tag.Timestamp = this.read(4);\n tag.StreamID = this.read(3);\n tag.body = this.read(FlvParse.getBodySum(tag.dataSize));\n this.tags.push(tag);\n this.read(4);\n }\n }\n\n read(length) {\n const tempUint8 = [];\n for (let i = 0; i < length; i += 1) {\n tempUint8.push(this.uint8[this.index]);\n this.index += 1;\n }\n return tempUint8;\n }\n\n verifyTags() {\n const state = this.tags.some(item => {\n const tagType = item.tagType[0];\n return ![18, 9, 8].includes(tagType);\n });\n\n console.log(state ? '验证不通过' : '验证通过');\n }\n\n static getBodySum(arr) {\n return arr[0] * 256 ** 2 + arr[1] * 256 + arr[2];\n }\n}\n","import Emitter from 'tiny-emitter';\nimport checkSupport from './utils/checkSupport';\nimport EventProxy from './eventProxy';\nimport CreatWorker from './creatWorker';\nimport CreatMediaSource from './creatMediaSource';\nimport FlvParse from './flvParse';\nimport * as utils from './utils';\nimport config from './config';\n\nlet id = 0;\nclass Flv extends Emitter {\n constructor(options) {\n super();\n this.options = Object.assign({}, Flv.DEFAULTS, options);\n console.log(this.options);\n checkSupport(this.options);\n id += 1;\n this.id = id;\n Flv.instances.push(this);\n }\n\n static get DEFAULTS() {\n return {\n mediaElement: '',\n url: '',\n };\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n load() {\n this.events = new EventProxy(this);\n this.workers = new CreatWorker(this);\n this.mediaSource = new CreatMediaSource(this);\n this.flvData = new FlvParse(this);\n }\n\n destroy() {\n this.events.destroy();\n this.workers.killAll();\n Flv.instances.splice(Flv.instances.indexOf(this), 1);\n this.emit('destroy');\n }\n}\n\nObject.defineProperty(Flv, 'instances', {\n value: [],\n});\n\nwindow.Flv = Flv;\nexport default Flv;\n"],"names":["_typeof","E","prototype","on","name","callback","ctx","e","push","fn","once","self","listener","off","apply","arguments","_","emit","data","slice","call","evtArr","i","len","length","evts","liveEvents","FlvError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","msg","mergeTypedArrays","a","b","c","set","checkSupport","options","mediaElement","url","HTMLVideoElement","File","type","MP4H264MimeCodec","canPlay","canPlayType","window","MediaSource","isTypeSupported","Promise","fetch","Worker","ReadableStream","EventProxy","destroyEvents","proxy","bind","target","option","addEventListener","removeEventListener","forEach","event","CreatWorker","workers","Map","has","create","worker","get","args","post","kill","blob","Blob","fnToStr","objectURL","URL","createObjectURL","revokeObjectURL","terminate","resolve","reject","onmessage","onerror","error","postMessage","mediaSource","propertys","methods","events","sourceBuffer","sourceBufferList","CreatMediaSource","flv","creatUrl","eventBind","src","config","eventName","sourceBuffers","activeSourceBuffers","fetchStream","then","response","ok","status","statusText","contentType","headers","includes","Response","start","controller","reader","body","getReader","cancel","read","done","value","close","enqueue","catch","readFile","file","FileReader","buffer","result","uint8","Uint8Array","readAsArrayBuffer","FlvParse","index","header","tags","console","log","parseHeader","signature","version","flags","headersize","tag","tagType","dataSize","Timestamp","StreamID","getBodySum","tempUint8","state","some","item","arr","id","Flv","Object","assign","DEFAULTS","instances","flvData","destroy","killAll","splice","indexOf","utils","Emitter","defineProperty"],"mappings":"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"} \ No newline at end of file diff --git a/packages/artplayer-plugin-flv/src/flvParse/index.js b/packages/artplayer-plugin-flv/src/flvParse/index.js index 311950398..43f76b5cb 100644 --- a/packages/artplayer-plugin-flv/src/flvParse/index.js +++ b/packages/artplayer-plugin-flv/src/flvParse/index.js @@ -5,7 +5,7 @@ import { mergeTypedArrays } from '../utils'; export default class FlvParse { constructor(flv) { this.flv = flv; - this.uint8 = new Int8Array(0); + this.uint8 = new Uint8Array(0); this.index = 0; this.header = null; this.tags = []; @@ -23,7 +23,7 @@ export default class FlvParse { }); flv.on('flvFetching', value => { - this.uint8 = mergeTypedArrays(this.uint8, value); + this.uint8 = mergeTypedArrays(this.uint8, new Uint8Array(value)); console.log(this.uint8.length); this.parseHeader(); }); @@ -32,6 +32,9 @@ export default class FlvParse { console.log('flvFetchEnd'); if (value) { this.uint8 = value; + this.index = 0; + this.header = null; + this.tags = []; this.parseHeader(); // this.parseTags(); } @@ -80,6 +83,15 @@ export default class FlvParse { return tempUint8; } + verifyTags() { + const state = this.tags.some(item => { + const tagType = item.tagType[0]; + return ![18, 9, 8].includes(tagType); + }); + + console.log(state ? '验证不通过' : '验证通过'); + } + static getBodySum(arr) { return arr[0] * 256 ** 2 + arr[1] * 256 + arr[2]; }