获取当前学习视频的总时长
每次点开视频学习的时候,想给自己做一个时间计划,但视频没有总时长和章节时长,不知道当前这个课程需要多化多长时间;
所以就写了一个js片段代码,获取当前课程的章节时长和总时长的时间,来给自己做好学习的计划;
有需要的朋友可以如下操作:
请打开视频播放页如:https://coding.imooc.com/lesson/xxxxx.html#mid=xxxx,
并点击【章节】按钮,打开列表, 复制当前代码,直接在浏览器的控制台运行即可 ;(注意一定要打开章节,否则读不到相关的DOM节点)
// 计算imooc学习视频总时长
var list = Array.prototype.slice.call(document.querySelector('.chapter-mini-list').children);
var children = [];
// 总时长
var minuteTotal = [] , secondsTotal = []
// 章节时长
var itemMinuteList = [], itemSecondsList = [];
for(var i = 0 ; i <= list.length; i++ ) {
if (i === list.length) {
getTime(itemMinuteList, itemSecondsList);
itemMinuteList = [], itemSecondsList=[];
continue;
}
var item = list[i];
// 可能出现DIV
if(item.tagName !== 'DT' && item.tagName !== 'DD') continue;
// 找出章节名称
if (item.tagName === 'DT'){
// 找到下一个章节的时候,先清空上一个章节的内容
minuteTotal = minuteTotal.concat(itemMinuteList);
secondsTotal = secondsTotal.concat(itemSecondsList);
i!==0 && getTime(itemMinuteList, itemSecondsList);
itemMinuteList = [], itemSecondsList=[];
const name = item.querySelector('span').innerText;
console.log(name);
continue;
}
if(item.className === 'learning') {
var name = item.querySelector('.name ').innerText;
console.log(`${name}当前正在学习,无法统计该项时间`)
continue;
}
var time = item.querySelector('.course-time')?.innerText;
//过滤【作业】
if(time === undefined) continue;
var minute = 0, seconds = 0;
itemMinuteList.push(parseInt(time.substr(1,2))); // 当前分
itemSecondsList.push(parseInt(time.substr(4,5))); // 当前秒
}
console.log('总视频时长')
getTime(minuteTotal, secondsTotal)
function getTime(itemMinuteList, itemSecondsList){
var minuteCount = itemMinuteList.reduce((sum, item) => sum + item, 0);
var secondsCount = itemSecondsList.reduce((sum, item) => sum + item, 0);
// 将所有的秒数转换成分钟
const m = Math.floor( secondsCount / 60);
const s = secondsCount % 60;
minuteCount += m;
const hour = Math.floor(minuteCount / 60);
const minute = hour === 0 ? minuteCount: hour % 60;
console.log(`${hour}:${minute}:${s}`);
}
效果
点击查看更多内容
2人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦