九月资源网-不以盈利为目的,仅仅为个人学习、研究或者欣赏。若未注明来源,请联系添加。如果侵犯到您的版权,请联系删除相关文章。

哔哩哔哩播放进度条JS

技术类 Thor 1个月前 (11-04) 12次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

前言

哔哩哔哩的云端播放记录需要改本地保存才能正常使用。
js

代码

(function videoList() {
    $('.small-item.fakeDanmu-item').each(
        function () {
            setTimeoutW(Progress_Indicators, 10, this, $(this).attr('data-aid'))
        }
    )
}())
function Progress_Indicators(node, id) {
    var json = getInfo(id)
    var progress = Math.trunc(GetPercent(json.response.data.last_play_time / 1000, json.duration))
    //----------------------------------------------------------------------------------------------------
    var progress_ui = document.createElement('div');
    $(progress_ui).attr('class', 'progress').attr('style', 'top: 0px;position: absolute;width: 100%;height: 4px;background-color: #909090;').html(`<div id="content" style="width: ${progress}%;height: 100%;background-color: #f00;"></div>`);
    var node = $(node).find('.cover').append(progress_ui);
    //----------------------------------------------------------------------------------------------------
    function getInfo(bvid) {
        this.httpRequest = new XMLHttpRequest();
        httpRequest.open('GET', `[url=https://api.bilibili.com/x/web-interface/view?bvid=]https://api.bilibili.com/x/web-interface/view?bvid=[/url]${bvid}`, false)//改bvid为avid就是支持avid了
        httpRequest.send(null);
        var json = JSON.parse(httpRequest.responseText);
        this.aid = json.data.aid
        this.cid = json.data.cid
        this.duration = json.data.duration
        //--------------------------------------------------------------------------------------------------------
        httpRequest.abort();
        httpRequest.open('GET', `[url=https://api.bilibili.com/x/player/v2?aid=]https://api.bilibili.com/x/player/v2?aid=[/url]${aid}&cid=${cid}`, false);
        httpRequest.withCredentials = true;//必须附加cookie信息,否则返回的是匿名数据
        httpRequest.send(null);
        var json = JSON.parse(httpRequest.responseText);
        //--------------------------------------------------------------------------------------------------------
        return { response: json, duration: duration }
    }
    function GetPercent(num, total) {
        num = parseFloat(num);
        total = parseFloat(total);
        if (isNaN(num) || isNaN(total)) {
            return 0;
        }
        return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00);
    }
}
function setTimeoutW(func, time, ...parameters) {
    setTimeout(
        (function (func, ...parameters) {
            return function () {
                func(...parameters)
            }
        }(func, ...parameters)
        ), time)
}

本文标题:哔哩哔哩播放进度条JS
若文件有解压密码,默认为:www.sir8.cn
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
如有侵权,请联系邮箱shidao144@gmail.com进行删除处理。
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址