From 490d7c963e91ca03b925bde83cd9755fb356d666 Mon Sep 17 00:00:00 2001 From: haiyangcui Date: Fri, 28 Aug 2020 14:53:09 +0200 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=AF=BC=E5=85=A5=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=89=A7=E9=9B=86=E5=88=B0PotPlayer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Play.vue | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/components/Play.vue b/src/components/Play.vue index 84674ea..5e3b448 100644 --- a/src/components/Play.vue +++ b/src/components/Play.vue @@ -542,17 +542,39 @@ export default { }, playWithExternalPalyerEvent () { this.fetchM3u8List().then(m3u8Arr => { - var m3u8Link = m3u8Arr[this.video.info.index] const fs = require('fs') var externalPlayer = this.setting.externalPlayer - if (fs.existsSync(externalPlayer)) { - var exec = require('child_process').execFile - exec(externalPlayer, [m3u8Link]) - } else { + if (!fs.existsSync(externalPlayer)) { this.$message.error('请设置第三方播放器路径') + } else { + var exec = require('child_process').execFile + var dplFile = this.generateDplFile(this.video.info.name, m3u8Arr, this.video.info.index) + exec(externalPlayer, [dplFile]) } }) }, + generateDplFile (fileName, m3u8Arr, index) { + const path = require('path') + const os = require('os') + const fs = require('fs') + var filePath = path.join(os.tmpdir(), fileName + '.dpl') + 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 + }) + fs.writeFileSync(filePath, str) + return filePath + }, checkStar () { star.find({ key: this.video.key, ids: this.video.info.id }).then(res => { if (res) {