diff --git a/docs/uncompiled/artplayer-plugin-playlist.js b/docs/uncompiled/artplayer-plugin-playlist.js index 435b25f70..b99e5d1ef 100644 --- a/docs/uncompiled/artplayer-plugin-playlist.js +++ b/docs/uncompiled/artplayer-plugin-playlist.js @@ -78,7 +78,9 @@ }); art.on('video:ended', function () { nextVideo().then(function () { - sleep(1000).then(player.play); + sleep(1000).then(function () { + player.play = true; + }); }); }); art.on('afterAttachUrl', function () { diff --git a/docs/uncompiled/artplayer-plugin-playlist.js.map b/docs/uncompiled/artplayer-plugin-playlist.js.map index b37607338..5e8166174 100644 --- a/docs/uncompiled/artplayer-plugin-playlist.js.map +++ b/docs/uncompiled/artplayer-plugin-playlist.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer-plugin-playlist.js","sources":["../../packages/artplayer-plugin-playlist/src/index.js"],"sourcesContent":["import './index.scss';\n\nfunction artplayerPluginPlaylist(list) {\n return art => {\n const {\n utils: { append, errorHandle, sleep, inverseClass },\n } = art.constructor;\n const {\n player,\n events: { proxy },\n template: { $player, $video },\n } = art;\n\n const $playlist = append(\n $player,\n `\n
\n
\n
\n `,\n );\n\n errorHandle(Array.isArray(list), 'Playlist is not an array type');\n errorHandle(list.length > 0, 'Playlist cannot be empty');\n const playlist = list.map(item => {\n errorHandle(item.url, 'Playlist items require url attribute');\n errorHandle(item.title, 'Playlist items require title attribute');\n return item;\n });\n\n const $playlistInner = $playlist.querySelector('.artplayer-playlist-inner');\n $playlistInner.innerHTML = playlist\n .map((item, index) => {\n return `
${item.title}
`;\n })\n .join('');\n\n function switchUrl(index) {\n const itemOption = playlist[index];\n return player.switchUrl(itemOption.url, itemOption.title).then(() => {\n art.emit('artplayerPluginPlaylist:change', itemOption);\n });\n }\n\n function prevVideo() {\n const index = playlist.findIndex(item => item.url === $video.src);\n errorHandle(index !== -1, \"Can't find Playlist item\");\n if (playlist.length === 1) {\n return switchUrl(0);\n }\n const prevIndex = index - 1 === -1 ? playlist.length - 1 : index - 1;\n return switchUrl(prevIndex);\n }\n\n function nextVideo() {\n const index = playlist.findIndex(item => item.url === $video.src);\n errorHandle(index !== -1, \"Can't find Playlist item\");\n if (playlist.length === 1) {\n return switchUrl(0);\n }\n const nextIndex = index + 1 === playlist.length ? 0 : index + 1;\n return switchUrl(nextIndex);\n }\n\n proxy($playlistInner, 'click', e => {\n const { optionIndex } = e.target.dataset;\n if (optionIndex && Number(optionIndex) <= playlist.length - 1) {\n switchUrl(optionIndex);\n }\n });\n\n proxy($playlist, 'click', e => {\n if (e.target === $playlist) {\n $player.classList.remove('artplayer-playlist-show');\n }\n });\n\n art.on('video:ended', () => {\n nextVideo().then(() => {\n sleep(1000).then(player.play);\n });\n });\n\n art.on('afterAttachUrl', () => {\n const index = playlist.findIndex(item => item.url === $video.src);\n const $item = Array.from($playlistInner.children)[index];\n if (index !== -1 && $item) {\n inverseClass($item, 'active');\n }\n });\n\n return {\n name: 'artplayerPluginPlaylist',\n show() {\n $player.classList.add('artplayer-playlist-show');\n },\n hide() {\n $player.classList.remove('artplayer-playlist-show');\n },\n next() {\n nextVideo();\n },\n prev() {\n prevVideo();\n },\n };\n };\n}\n\nexport default artplayerPluginPlaylist;\n"],"names":["artplayerPluginPlaylist","list","art","constructor","utils","append","errorHandle","sleep","inverseClass","player","proxy","events","template","$player","$video","$playlist","Array","isArray","length","playlist","map","item","url","title","$playlistInner","querySelector","innerHTML","index","join","switchUrl","itemOption","then","emit","prevVideo","findIndex","src","prevIndex","nextVideo","nextIndex","e","optionIndex","target","dataset","Number","classList","remove","on","play","$item","from","children","name","show","add","hide","next","prev"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer-plugin-playlist.js","sources":["../../packages/artplayer-plugin-playlist/src/index.js"],"sourcesContent":["import './index.scss';\n\nfunction artplayerPluginPlaylist(list) {\n return art => {\n const {\n utils: { append, errorHandle, sleep, inverseClass },\n } = art.constructor;\n const {\n player,\n events: { proxy },\n template: { $player, $video },\n } = art;\n\n const $playlist = append(\n $player,\n `\n
\n
\n
\n `,\n );\n\n errorHandle(Array.isArray(list), 'Playlist is not an array type');\n errorHandle(list.length > 0, 'Playlist cannot be empty');\n const playlist = list.map(item => {\n errorHandle(item.url, 'Playlist items require url attribute');\n errorHandle(item.title, 'Playlist items require title attribute');\n return item;\n });\n\n const $playlistInner = $playlist.querySelector('.artplayer-playlist-inner');\n $playlistInner.innerHTML = playlist\n .map((item, index) => {\n return `
${item.title}
`;\n })\n .join('');\n\n function switchUrl(index) {\n const itemOption = playlist[index];\n return player.switchUrl(itemOption.url, itemOption.title).then(() => {\n art.emit('artplayerPluginPlaylist:change', itemOption);\n });\n }\n\n function prevVideo() {\n const index = playlist.findIndex(item => item.url === $video.src);\n errorHandle(index !== -1, \"Can't find Playlist item\");\n if (playlist.length === 1) {\n return switchUrl(0);\n }\n const prevIndex = index - 1 === -1 ? playlist.length - 1 : index - 1;\n return switchUrl(prevIndex);\n }\n\n function nextVideo() {\n const index = playlist.findIndex(item => item.url === $video.src);\n errorHandle(index !== -1, \"Can't find Playlist item\");\n if (playlist.length === 1) {\n return switchUrl(0);\n }\n const nextIndex = index + 1 === playlist.length ? 0 : index + 1;\n return switchUrl(nextIndex);\n }\n\n proxy($playlistInner, 'click', e => {\n const { optionIndex } = e.target.dataset;\n if (optionIndex && Number(optionIndex) <= playlist.length - 1) {\n switchUrl(optionIndex);\n }\n });\n\n proxy($playlist, 'click', e => {\n if (e.target === $playlist) {\n $player.classList.remove('artplayer-playlist-show');\n }\n });\n\n art.on('video:ended', () => {\n nextVideo().then(() => {\n sleep(1000).then(() => {\n player.play = true;\n });\n });\n });\n\n art.on('afterAttachUrl', () => {\n const index = playlist.findIndex(item => item.url === $video.src);\n const $item = Array.from($playlistInner.children)[index];\n if (index !== -1 && $item) {\n inverseClass($item, 'active');\n }\n });\n\n return {\n name: 'artplayerPluginPlaylist',\n show() {\n $player.classList.add('artplayer-playlist-show');\n },\n hide() {\n $player.classList.remove('artplayer-playlist-show');\n },\n next() {\n nextVideo();\n },\n prev() {\n prevVideo();\n },\n };\n };\n}\n\nexport default artplayerPluginPlaylist;\n"],"names":["artplayerPluginPlaylist","list","art","constructor","utils","append","errorHandle","sleep","inverseClass","player","proxy","events","template","$player","$video","$playlist","Array","isArray","length","playlist","map","item","url","title","$playlistInner","querySelector","innerHTML","index","join","switchUrl","itemOption","then","emit","prevVideo","findIndex","src","prevIndex","nextVideo","nextIndex","e","optionIndex","target","dataset","Number","classList","remove","on","play","$item","from","children","name","show","add","hide","next","prev"],"mappings":"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"} \ No newline at end of file