diff --git a/docs/assets/example/dash.control.js b/docs/assets/example/dash.control.js index 6b32a02c2..c8f19c675 100644 --- a/docs/assets/example/dash.control.js +++ b/docs/assets/example/dash.control.js @@ -4,45 +4,55 @@ // import dashjs from 'dashjs'; // import artplayerPluginDashControl from 'artplayer-plugin-dash-control'; +const useDash = dashjs.supportsMediaSource() +let dash + +function destroyDash() { + const previous = dash + dash = undefined + if (previous) + previous.destroy() +} + const art = new Artplayer({ container: '.artplayer-app', url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd', setting: true, - plugins: [ - artplayerPluginDashControl({ - quality: { - // Show qualitys in control - control: true, - // Show qualitys in setting - setting: true, - // Get the quality name from level - getName: level => `${level.height}P`, - // I18n - title: 'Quality', - auto: 'Auto', - }, - audio: { - // Show audios in control - control: true, - // Show audios in setting - setting: true, - // Get the audio name from track - getName: track => track.lang.toUpperCase(), - // I18n - title: 'Audio', - auto: 'Auto', - }, - }), - ], + plugins: useDash + ? [ + artplayerPluginDashControl({ + quality: { + // Show quality choices in the controls + control: true, + // Show quality choices in settings + setting: true, + // Get the quality name from level + getName: level => `${level.height}P`, + // I18n + title: 'Quality', + auto: 'Auto', + }, + audio: { + // Show audios in control + control: true, + // Show audios in setting + setting: true, + // Get the audio name from track + getName: track => track.lang?.toUpperCase() || String(track.id ?? 'Audio'), + // I18n + title: 'Audio', + auto: 'Auto', + }, + }), + ] + : [], customType: { mpd: function playMpd(video, url, art) { - if (dashjs.supportsMediaSource()) { - if (art.dash) - art.dash.destroy() - const dash = dashjs.MediaPlayer().create() - dash.initialize(video, url, art.option.autoplay) + destroyDash() + if (useDash) { + dash = dashjs.MediaPlayer().create() art.dash = dash - art.on('destroy', () => dash.destroy()) + dash.initialize(video, url, art.option.autoplay) } else { art.notice.show = 'Unsupported playback format: mpd' @@ -50,3 +60,5 @@ const art = new Artplayer({ }, }, }) + +art.on('destroy', destroyDash) diff --git a/docs/document/404.html b/docs/document/404.html index b4f66d3cc..3f9068b69 100644 --- a/docs/document/404.html +++ b/docs/document/404.html @@ -9,7 +9,7 @@ - + @@ -21,7 +21,7 @@
- +