From af4d697b194647d4b5fa3cb6579835c6a1d30cc7 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sat, 23 May 2020 11:09:49 +0800 Subject: [PATCH] feat: pluginOptions flv mediaDataSource and config --- docs/guide.md | 8 +++++++- docs/zh/guide.md | 8 +++++++- src/js/options.js | 2 +- src/js/player.js | 19 +++++++++---------- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/docs/guide.md b/docs/guide.md index 24619e6..81ffd4f 100644 --- a/docs/guide.md +++ b/docs/guide.md @@ -598,7 +598,13 @@ const dp = new DPlayer({ }, pluginOptions: { flv: { - // flv config + // refer to https://github.com/bilibili/flv.js/blob/master/docs/api.md#flvjscreateplayer + mediaDataSource: { + // mediaDataSource config + }, + config: { + // config + }, }, }, }); diff --git a/docs/zh/guide.md b/docs/zh/guide.md index 9357afb..54ec19d 100644 --- a/docs/zh/guide.md +++ b/docs/zh/guide.md @@ -582,7 +582,13 @@ const dp = new DPlayer({ }, pluginOptions: { flv: { - // flv config + // refer to https://github.com/bilibili/flv.js/blob/master/docs/api.md#flvjscreateplayer + mediaDataSource: { + // mediaDataSource config + }, + config: { + // config + }, }, }, }); diff --git a/src/js/options.js b/src/js/options.js index 10c237b..abf69a9 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -18,7 +18,7 @@ export default (options) => { video: {}, contextmenu: [], mutex: true, - pluginOptions: { hls: {}, flvjs: {}, dash: {}, webtorrent: {} }, + pluginOptions: { hls: {}, flv: {}, dash: {}, webtorrent: {} }, }; for (const defaultKey in defaultOption) { if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) { diff --git a/src/js/player.js b/src/js/player.js index 08f747d..7706e1a 100644 --- a/src/js/player.js +++ b/src/js/player.js @@ -370,11 +370,13 @@ class DPlayer { case 'flv': if (window.flvjs) { if (window.flvjs.isSupported()) { - const options = Object.assign(this.options.pluginOptions.flvjs, { - type: 'flv', - url: video.src, - }); - const flvPlayer = window.flvjs.createPlayer(options); + const flvPlayer = window.flvjs.createPlayer( + Object.assign(this.options.pluginOptions.flv.mediaDataSource || {}, { + type: 'flv', + url: video.src, + }), + this.options.pluginOptions.flv.config + ); this.plugins.flvjs = flvPlayer; flvPlayer.attachMediaElement(video); flvPlayer.load(); @@ -395,10 +397,7 @@ class DPlayer { // https://github.com/Dash-Industry-Forum/dash.js case 'dash': if (window.dashjs) { - const dashjsPlayer = window.dashjs - .MediaPlayer() - .create() - .initialize(video, video.src, false); + const dashjsPlayer = window.dashjs.MediaPlayer().create().initialize(video, video.src, false); const options = this.options.pluginOptions.dash; dashjsPlayer.updateSettings(options); this.plugins.dash = dashjsPlayer; @@ -427,7 +426,7 @@ class DPlayer { const file = torrent.files.find((file) => file.name.endsWith('.mp4')); file.renderTo(this.video, { autoplay: this.options.autoplay, - controls: false + controls: false, }); }); this.events.on('destroy', () => {