From 785f9b20e7452ce13989e722ab73664fe777e84d Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Tue, 1 Sep 2020 23:03:24 +0200 Subject: [PATCH] =?UTF-8?q?=E7=94=A8m3u=E6=96=87=E4=BB=B6=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3dpl=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Play.vue | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/components/Play.vue b/src/components/Play.vue index 32d56d6..253f3ab 100644 --- a/src/components/Play.vue +++ b/src/components/Play.vue @@ -552,30 +552,25 @@ export default { open(link) } else { var exec = require('child_process').execFile - var dplFile = this.generateDplFile(this.video.info.name, m3u8Arr, this.video.info.index) - exec(externalPlayer, [dplFile]) + var m3uFile = this.generateM3uFile(this.video.info.name, m3u8Arr, this.video.info.index) + exec(externalPlayer, [m3uFile]) } }) }, - generateDplFile (fileName, m3u8Arr, index) { + generateM3uFile (fileName, m3u8Arr, startIndex) { const path = require('path') const os = require('os') const fs = require('fs') - var filePath = path.join(os.tmpdir(), fileName + '.dpl') + var filePath = path.join(os.tmpdir(), fileName + '.m3u') if (fs.existsSync(filePath)) { fs.unlinkSync(filePath) } - var str = 'DAUMPLAYLIST' + os.EOL - str += 'playname=' + m3u8Arr[index] + os.EOL - str += 'topindex=' + 0 + os.EOL - str += 'saveplaypos=' + index + os.EOL - - var ind = 1 - m3u8Arr.forEach(element => { - str += ind + '*title*第' + ind + '集' + os.EOL - str += ind + '*file*' + element + os.EOL - ind += 1 - }) + var str = '#EXTM3U' + os.EOL + for (let ind = startIndex; ind < m3u8Arr.length; ind++) { + str += `#EXTINF: -1, 第${ind + 1}集` + os.EOL + str += m3u8Arr[ind] + os.EOL + } + str += '#EXT-X-ENDLIST' + os.EOL fs.writeFileSync(filePath, str) return filePath },