最新公告
  • 欢迎您光临站长资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • Dplayer播放器替换、删除 ts文件

    该代码只对PC有效,对部分接管视频播放器的手机浏览器完全无效。
    其实m3u8里面不一定是ts,也可以是.png或者.jpg等,我这里就很文盲地统称它们为“ts文件

    //引用最新的hls文件  
     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dplayer@latest/dist/DPlayer.min.css">
     <!--hls文件-->
    <script src="https://cdn.jsdelivr.net/npm/hls.js/dist/hls.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.js"></script>
    
    //重写dplayer播放器的hls config
    var dp = new DPlayer({
            container: document.getElementById('video'),
            theme: '#4C8FE8',
            volume: 0.8,
            autoplay: true,
            video: {
                url: urls,
                type: 'hls',
                defaultQuality: 0
            },
            pluginOptions: {
                hls: {
                    pLoader: pLoader,//重写这个方法,就可以改了...
                    // hls config
                    xhrSetup: function(xhr, url) {
                        //这个方法其实可以删除的,跟重写上面的方法功能类似,但没有上面的强大..
                        //每个ts的url加载都会走这里...
                        //这里可以修改url地址..但不能删..(如果不去open的话,就会404...)
                        //这里就不删了,做个记录...
                        /////
                        //////
                        ///////如果要用的话,记着删了这个if的逻辑...
                        ////这个地方我是记录用的....
                        if (/\.ts/.test(url)) {
                             url =  url + '?_q=123456'
                            xhr.open('GET', url, true);
                         }
                    }
                },
            },
        });
    class pLoader extends Hls.DefaultConfig.loader {
        constructor(config) {
            super(config);
            var load = this.load.bind(this);
            this.load = function(context, config, callbacks) {
                //这里有两个值manifest level
                //manifest:加载最早的,但这个东西有时候还包裹着另外一层,不是最终的。看情况
                // level:这玩意貌似是最后的...
                if (context.type == 'level') {
                    var onSuccess = callbacks.onSuccess;
                    callbacks.onSuccess = function(response, stats, context) {
                        //这是重点...实现方法在下面
                        response.data = process(response.data);
                        onSuccess(response, stats, context);
                    }
                }
                load(context, config, callbacks);
            };
        }
    }
    //playlist是m3u8的ts文件内容
    //所以可以在这里用正则或者其他替换方法
    //进行对ts文件地址的增删改查
    function process(playlist) {
        //这个正则也是举例子...没有具体的需求跟实际意义
        //具体怎么替换根据需求写......
        //不要纠结为什么写这个
        //因为我愿意,这是我的博客....
        var arr = playlist.match(/#EXTINF(?:.|\n)*?ts\n/gi);
        if (arr != null){
             for (var i = 0; i < arr.length; i++) {
                var strts = arr[i];
                //给每个ts链接增加一个q=12345的参数,只是举个例子
                //不要纠结有没有意思
                 strts=strts+"?q=12345";
                 playlist = playlist.replace(strts, "");
             }
        }
        return playlist;
    }
    
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    6. 如有链接无法下载、失效或广告,请联系管理员处理!
    7. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    8. 如遇到加密压缩包,默认解压密码为"********",如遇到无法解压的请联系管理员!

    站长资源网 » Dplayer播放器替换、删除 ts文件

    发表评论