使用方法:
现在您可以直接引入我们的播放器以直接使用我们的P2P加速功能:
https://api.xct.pw/m3u8.php?url=m3u8地址
替换上面的m3u8地址即可,自动使用P2P或者源服务器
1.任何代码均公开透明,无任何加密操作,您可以将代码下载到本地,然后上传到自己的服务器,修改调用域名亦可;
不过,我们依旧推荐用户直接使用我们的资源链接,原因两点:
1.我们使用了优秀的CDN,加载速度快;
2.播放器样式或者兼容性需要有重大修改时,我们会直接修改,不必您在手动上自己的服务器修改。
以下是一个完整的视频解析页面的DEMO,保存为:m3u8.php 即可,
使用方式为http(s)://您的网址/m3u8.php?url=xxxxx.m3u8,当然了,m3u8的地址需要写入h5跨域头,
代码如下,细节请自行修改 :
源码:
<?php /** * @author CJ22 * @copyright 2018 * @version 1.0 * * for ray-p2p system * */ ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" /> <meta name="referrer" content="never" /> <title>云解析</title> <style type="text/css">body,html,.dplayer{padding:0;margin:0;width:100%;height:100%;background-color:#000}a{text-decoration:none}</style> </head> <body> <div id="dplayer"></div> <div id="stats"></div> <code class="hljs xml"> <script src="https://cdn.bskchina.cn/p2p/p2p.js"></script> <script src="https://cdn.bskchina.cn/dplayer/dplayer.js"></script> <link rel="stylesheet" href="https://cdn.bskchina.cn/dplayer/DPlayer.min.css"> <script> var _peerId = '', _peerNum = 0, _totalP2PDownloaded = 0, _totalP2PUploaded = 0; function updateStats() { var text = 'P2P正在为您加速' + (_totalP2PDownloaded/1024).toFixed(2) + 'MB 已分享' + (_totalP2PUploaded/1024).toFixed(2) + 'MB' + ' 连接节点' + _peerNum + '个'; document.getElementById('stats').innerText = text; } var hlsjsConfig = { debug: false, maxBufferHole: 5, p2pConfig: { logLevel: 'warn', announce: "https://tracker.xct.pw", wsSignalerAddr: 'wss://signal.xct.pw/', } }; var hls; var dp = new DPlayer({ container: document.getElementById('dplayer'), autoplay:true, loop:true, screenshot:true, hotkey:true, video: { url: '<?php echo($_REQUEST['url']);?>', //pic: 'logo.png', type: 'customHls', customType: { 'customHls': function (video, player) { var isMobile = navigator.userAgent.match(/iPad|iPhone|Linux|Android|iPod/i) != null; if (0) { var html = '<video src="'+video.src+'" controls="controls" autoplay="autoplay" width="100%" height="100%"></video>'; document.getElementById('dplayer').innerHTML = html; }else{ hls = new Hls(hlsjsConfig); hls.loadSource(video.src); hls.attachMedia(video); hls.p2pEngine.on('stats', function (stats) { _totalP2PDownloaded = stats.totalP2PDownloaded; _totalP2PUploaded = stats.totalP2PUploaded; updateStats(); }).on('peerId', function (peerId) { _peerId = peerId; }).on('peers', function (peers) { _peerNum = peers.length; updateStats(); }); } } } } }); </script> </body> </html>