最新公告
  • 欢迎您光临AEjson资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 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;
    }
    
    AEjson资源网是一个网络资源共享平台,提供最新、最全的程序相关资源下载,内容包含各类一手源码下载,努力打造为网络爱好者提供优质服务的平台
    AEjson资源网 » Dplayer播放器替换、删除 ts文件

    常见问题FAQ

    免费下载或者皇帝专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    AEjson资源网
    一个高级程序员模板开发平台

    发表评论

    • 10会员总数(位)
    • 43资源总数(个)
    • 1本周发布(个)
    • 0 今日发布(个)
    • 386稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    升级SVIP尊享更多特权立即升级