diff --git a/src/js/player.js b/src/js/player.js index ffafa40..fde96aa 100644 --- a/src/js/player.js +++ b/src/js/player.js @@ -33,7 +33,7 @@ class DPlayer { * @constructor */ constructor (options) { - this.options = handleOption(options); + this.options = handleOption({preload:options.video.type === 'webtorrent' ? 'none' : 'metadata', ...options}); if (this.options.video.quality) { this.qualityIndex = this.options.video.defaultQuality; @@ -404,12 +404,13 @@ class DPlayer { this.container.classList.add('dplayer-loading'); const client = new WebTorrent(); const torrentId = video.src; + video.src = ''; + video.preload = 'metadata'; + video.addEventListener('durationchange', () => this.container.classList.remove('dplayer-loading'), {once: true}); client.add(torrentId, (torrent) => { const file = torrent.files.find((file) => file.name.endsWith('.mp4')); file.renderTo(this.video, { autoplay: this.options.autoplay - }, () => { - this.container.classList.remove('dplayer-loading'); }); }); this.events.on('destroy', () => { @@ -455,7 +456,7 @@ class DPlayer { // Not a video load error, may be poster load failed, see #307 return; } - this.tran && this.notice && this.type !== 'webtorrent' & this.notice(this.tran('Video load failed'), -1); + this.tran && this.notice && this.type !== 'webtorrent' && this.notice(this.tran('Video load failed'), -1); }); // video end