正在显示
4 个修改的文件
包含
46 行增加
和
44 行删除
@@ -2,7 +2,8 @@ const GETCLASSURL = "http://139.196.126.156:8081/getLogs/recordClassList" | @@ -2,7 +2,8 @@ const GETCLASSURL = "http://139.196.126.156:8081/getLogs/recordClassList" | ||
2 | const GETCLASSURLPARAMETER = { | 2 | const GETCLASSURLPARAMETER = { |
3 | siteId:["BuzzKID","kuaikuenglish"], | 3 | siteId:["BuzzKID","kuaikuenglish"], |
4 | key:"xdymp4record20191225", | 4 | key:"xdymp4record20191225", |
5 | - page:1 | 5 | + page:1, |
6 | + maxMedia:1, | ||
6 | } | 7 | } |
7 | 8 | ||
8 | const PROJECTWINCATALOG = "E:/project/web_capture_release/win-x64" | 9 | const PROJECTWINCATALOG = "E:/project/web_capture_release/win-x64" |
@@ -22,7 +23,9 @@ const BACKMEDIACONFIG = { | @@ -22,7 +23,9 @@ const BACKMEDIACONFIG = { | ||
22 | d:0.5*60*60*1000, | 23 | d:0.5*60*60*1000, |
23 | s:0, | 24 | s:0, |
24 | fa:15, | 25 | fa:15, |
25 | - k:1 | 26 | + k:1, |
27 | + w:1600, | ||
28 | + h:789, | ||
26 | } | 29 | } |
27 | module.exports = { | 30 | module.exports = { |
28 | GETCLASSURL, | 31 | GETCLASSURL, |
@@ -13,10 +13,9 @@ const { startTime, endTime, ymd } = YesterdayTime() | @@ -13,10 +13,9 @@ const { startTime, endTime, ymd } = YesterdayTime() | ||
13 | let siteIds = GETCLASSURLPARAMETER.siteId | 13 | let siteIds = GETCLASSURLPARAMETER.siteId |
14 | 14 | ||
15 | let classid = [] | 15 | let classid = [] |
16 | -let parentData = [] | 16 | +let parentData = {} |
17 | var classobj = {}; | 17 | var classobj = {}; |
18 | let className = "" | 18 | let className = "" |
19 | -let maxMedia = 2 | ||
20 | /** | 19 | /** |
21 | * | 20 | * |
22 | * @param {*} id 课堂id | 21 | * @param {*} id 课堂id |
@@ -27,40 +26,32 @@ class MediaCreat { | @@ -27,40 +26,32 @@ class MediaCreat { | ||
27 | async allData() { | 26 | async allData() { |
28 | let page = 1 | 27 | let page = 1 |
29 | className = siteIds.shift() | 28 | className = siteIds.shift() |
30 | - let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, page) | ||
31 | - for (let j = 0; j < result.data.data.list.length; j++) { | ||
32 | - classid.push(result.data.data.list[j]) | ||
33 | - } | ||
34 | - const { siteId, list, totalPage } = result.data.data | ||
35 | - for (let i = page += 1; i <= totalPage; i++) { | ||
36 | - let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, i) | 29 | + if (className) { |
30 | + let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, page) | ||
31 | + parentData[result.data.data.siteId] = [] | ||
32 | + | ||
37 | for (let j = 0; j < result.data.data.list.length; j++) { | 33 | for (let j = 0; j < result.data.data.list.length; j++) { |
38 | classid.push(result.data.data.list[j]) | 34 | classid.push(result.data.data.list[j]) |
39 | } | 35 | } |
40 | - } | ||
41 | - | ||
42 | - classid = classid.reduce(function (item, next) { | ||
43 | - classobj[next.classId] ? '' : classobj[next.classId] = true && item.push(next); | ||
44 | - return item; | ||
45 | - }, []); | ||
46 | - parentData = JSON.parse(JSON.stringify(classid)) | ||
47 | - return true | ||
48 | - } | ||
49 | - | ||
50 | - // 取出不同的值 | ||
51 | - async notResult(data1, data2) { | ||
52 | - new Promise((resolve, reject) => { | ||
53 | - let data = [] | ||
54 | - for (let i = 0; i < data2.length; i++) { | ||
55 | - // for(let j=0;j<data1.length;j++){ | ||
56 | - if (data1.indexOf(data2[i].classId+".mp4") == -1) { | ||
57 | - console.log("不存在:"+data2[i]) | ||
58 | - data.push(data2[i]) | 36 | + const { siteId, list, totalPage } = result.data.data |
37 | + for (let i = page += 1; i <= totalPage; i++) { | ||
38 | + let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, i) | ||
39 | + for (let j = 0; j < result.data.data.list.length; j++) { | ||
40 | + classid.push(result.data.data.list[j]) | ||
59 | } | 41 | } |
60 | } | 42 | } |
61 | - console.log("data",data) | ||
62 | - return resolve(data) | ||
63 | - }) | 43 | + |
44 | + classid = classid.reduce(function (item, next) { | ||
45 | + classobj[next.classId] ? '' : classobj[next.classId] = true && item.push(next); | ||
46 | + return item; | ||
47 | + }, []); | ||
48 | + for (let i = 0; i < classid.length; i++) { | ||
49 | + parentData[result.data.data.siteId].push(classid[i].classId) | ||
50 | + } | ||
51 | + return true | ||
52 | + } else { | ||
53 | + return false | ||
54 | + } | ||
64 | } | 55 | } |
65 | async mediaCreat(id, siteId) { | 56 | async mediaCreat(id, siteId) { |
66 | let mediaDir = PROJECTCATALOG + "/media/" | 57 | let mediaDir = PROJECTCATALOG + "/media/" |
@@ -75,23 +66,34 @@ class MediaCreat { | @@ -75,23 +66,34 @@ class MediaCreat { | ||
75 | if (!fs.existsSync(ymdDir)) { | 66 | if (!fs.existsSync(ymdDir)) { |
76 | fs.mkdirSync(ymdDir); | 67 | fs.mkdirSync(ymdDir); |
77 | } | 68 | } |
78 | - let url = `web_capture_c -o=../media/${siteId}/${ymd}/${id}.mp4 -u="${BACKMEDIACONFIG.url}?classId=${id}&userId=${BACKMEDIACONFIG.userId}&userName=${BACKMEDIACONFIG.userName}&userRole=${BACKMEDIACONFIG.userRole}&portalIP=${BACKMEDIACONFIG.portalIP}&portalPort=${BACKMEDIACONFIG.portalPort}&channels=${BACKMEDIACONFIG.channels}&playRecord=${BACKMEDIACONFIG.playRecord}" -d=${BACKMEDIACONFIG.d} -s=${BACKMEDIACONFIG.s} -fa=${BACKMEDIACONFIG.fa} -k=${BACKMEDIACONFIG}` | 69 | + let url = `web_capture_c -o=../media/${siteId}/${ymd}/${id}.mp4 -u="${BACKMEDIACONFIG.url}?classId=${id}&userId=${BACKMEDIACONFIG.userId}&userName=${BACKMEDIACONFIG.userName}&userRole=${BACKMEDIACONFIG.userRole}&portalIP=${BACKMEDIACONFIG.portalIP}&portalPort=${BACKMEDIACONFIG.portalPort}&channels=${BACKMEDIACONFIG.channels}&playRecord=${BACKMEDIACONFIG.playRecord}" -d=${BACKMEDIACONFIG.d} -s=${BACKMEDIACONFIG.s} -fa=${BACKMEDIACONFIG.fa} -k=${BACKMEDIACONFIG.k} -w=${BACKMEDIACONFIG.w} -h=${BACKMEDIACONFIG.h}` |
79 | var workerProcess = spawn(url, { cwd: PROJECTWINCATALOG, shell: true }) | 70 | var workerProcess = spawn(url, { cwd: PROJECTWINCATALOG, shell: true }) |
80 | // workerProcess.stdout.on('data', async function (data) { | 71 | // workerProcess.stdout.on('data', async function (data) { |
81 | 72 | ||
82 | // }); | 73 | // }); |
83 | 74 | ||
84 | workerProcess.on('close', async function (code) { | 75 | workerProcess.on('close', async function (code) { |
85 | - if (code == 0) { | 76 | + let files = fs.readdirSync(ymdDir); |
77 | + if (files.indexOf(id + ".mp4") == -1) { | ||
78 | + //当前课堂没有写入到文件夹,进入重录 | ||
79 | + new MediaCreat().mediaCreat(id, siteId) | ||
80 | + return false | ||
81 | + } else { | ||
82 | + if (parentData[siteId].indexOf(id.toString()) != -1) { | ||
83 | + parentData[siteId].splice(parentData[siteId].indexOf(id.toString()), 1) | ||
84 | + } | ||
85 | + if (parentData[siteId].length == 0) { | ||
86 | + // //全部录制完毕 | ||
87 | + fs.writeFile(ymdDir + "/download.json", `{ "code": "0", "success": "ok"}`, function (err) { | ||
88 | + if (err) { | ||
89 | + console.log(err); | ||
90 | + } | ||
91 | + }); | ||
92 | + } | ||
86 | if (classid.length) { | 93 | if (classid.length) { |
87 | let shiftData = classid.shift() | 94 | let shiftData = classid.shift() |
88 | new MediaCreat().mediaCreat(shiftData['classId'], shiftData['siteId']) | 95 | new MediaCreat().mediaCreat(shiftData['classId'], shiftData['siteId']) |
89 | } else { | 96 | } else { |
90 | - // 判断是否有缺录 | ||
91 | - // let files = fs.readdirSync(ymdDir); | ||
92 | - // if (files.length != parentData.length) { | ||
93 | - // let notResult = await new MediaCreat().notResult(files,parentData) | ||
94 | - // } | ||
95 | if (siteIds.length) { | 97 | if (siteIds.length) { |
96 | // 如果有多家需要录制,继续录制下一家 | 98 | // 如果有多家需要录制,继续录制下一家 |
97 | let isAppend = await new MediaCreat().allData() | 99 | let isAppend = await new MediaCreat().allData() |
@@ -101,8 +103,6 @@ class MediaCreat { | @@ -101,8 +103,6 @@ class MediaCreat { | ||
101 | } | 103 | } |
102 | } | 104 | } |
103 | } | 105 | } |
104 | - } else { | ||
105 | - new MediaCreat().mediaCreat(id, siteId) | ||
106 | } | 106 | } |
107 | }); | 107 | }); |
108 | } | 108 | } |
@@ -113,7 +113,7 @@ router.get('/', async function (req, res, next) { | @@ -113,7 +113,7 @@ router.get('/', async function (req, res, next) { | ||
113 | let isAppend = await new MediaCreat().allData() | 113 | let isAppend = await new MediaCreat().allData() |
114 | if (isAppend) { | 114 | if (isAppend) { |
115 | if (classid.length) { | 115 | if (classid.length) { |
116 | - for (let i = 0; i < maxMedia; i++) { | 116 | + for (let i = 0; i < GETCLASSURLPARAMETER.maxMedia; i++) { |
117 | let shiftData = classid.shift() | 117 | let shiftData = classid.shift() |
118 | if (shiftData) { | 118 | if (shiftData) { |
119 | new MediaCreat().mediaCreat(shiftData['classId'], shiftData['siteId']) | 119 | new MediaCreat().mediaCreat(shiftData['classId'], shiftData['siteId']) |
webScreen.rar
已删除
100644 → 0
不能预览此文件类型
-
请 注册 或 登录 后发表评论