From 89f8df3a3a5f374f23a151c92dafe8707d299056 Mon Sep 17 00:00:00 2001 From: snowinszu <86755838@qq.com> Date: Wed, 5 Jan 2022 23:05:26 +0800 Subject: [PATCH] update demo --- README.md | 6 +- Readme_zh.md | 6 +- demo/cbplayer.html | 2 +- demo/chimee.html | 2 +- demo/chplayer.html | 2 +- demo/ckplayer.html | 2 +- demo/clappr.html | 2 +- demo/dplayer.html | 2 +- demo/flowplayer.html | 2 +- demo/fluidplayer.html | 2 +- demo/jwplayer.html | 8 +- demo/mediaelement.html | 2 +- demo/openplayer.html | 2 +- demo/playerjs/index.html | 2 +- demo/plyr.html | 2 +- demo/ppvod/DPlayer.min.js | 2 - ...06\346\210\220\350\257\264\346\230\216.md" | 16 - demo/ppvod/dplayer/DPlayer.min.css | 4 + demo/ppvod/dplayer/DPlayer.min.css.map | 1 + demo/ppvod/dplayer/DPlayer.min.js | 2 + demo/ppvod/dplayer/DPlayer.min.js.map | 1 + demo/ppvod/dplayer/DPlayer.min.mod.js | 1 + demo/ppvod/dplayer/hls.min.js | 1 + ...46\210\220p2p\346\226\271\346\263\225.txt" | 15 + demo/ppvod/share.js | 343 ----------------- demo/ppvod/share2.js | 351 ++++++++++++++++++ demo/quick-start.html | 2 +- demo/standalone.html | 8 +- demo/tcplayer.html | 2 +- demo/videojs.html | 2 +- demo/xgplayer.html | 2 +- package.json | 7 +- 32 files changed, 411 insertions(+), 393 deletions(-) delete mode 100644 demo/ppvod/DPlayer.min.js delete mode 100755 "demo/ppvod/P2P\351\233\206\346\210\220\350\257\264\346\230\216.md" create mode 100644 demo/ppvod/dplayer/DPlayer.min.css create mode 100644 demo/ppvod/dplayer/DPlayer.min.css.map create mode 100644 demo/ppvod/dplayer/DPlayer.min.js create mode 100644 demo/ppvod/dplayer/DPlayer.min.js.map create mode 100644 demo/ppvod/dplayer/DPlayer.min.mod.js create mode 100644 demo/ppvod/dplayer/hls.min.js create mode 100644 "demo/ppvod/ppvod\351\233\206\346\210\220p2p\346\226\271\346\263\225.txt" delete mode 100755 demo/ppvod/share.js create mode 100644 demo/ppvod/share2.js diff --git a/README.md b/README.md index bf66f4b8..87cc8bf6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ **English | [简体中文](Readme_zh.md)** -

cdnbye logo

+

cdnbye logo

Let your viewers become your unlimitedly scalable CDN.

npm @@ -75,13 +75,13 @@ See [API.md](https://www.hdtvcloud.com/en/views/web/API.html) Register your domain in `https://oms.cdnbye.com`, where you can view p2p-related information. ## Related Projects -- [iosweb-p2p-engine](https://github.com/swarm-cloud/iosweb-p2p-engine) - Live/VOD P2P Engine for iOS Safari. +- [hls-sw-p2p-engine](https://github.com/swarm-cloud/hls-sw-p2p-engine) - Live/VOD P2P Engine for all browsers including iOS Safari, with the help of ServiceWorker. - [android-p2p-engine](https://github.com/cdnbye/android-p2p-engine) - Live/VOD P2P Engine for Android and Android TV. - [ios-p2p-engine](https://github.com/cdnbye/ios-p2p-engine) - iOS Video P2P Engine for Any Player. - [flutter-p2p-engine](https://github.com/cdnbye/flutter-p2p-engine) - Live/VOD P2P Engine for Flutter, contributed by [mjl0602](https://github.com/mjl0602). - [shaka-p2p-engine](https://github.com/cdnbye/shaka-p2p-engine) - P2P engine for Shaka Player. - [dashjs-p2p-engine](https://github.com/cdnbye/dashjs-p2p-engine) - Web Video Delivery Technology with No Plugins for MPEG-dash. -- [mp4-p2p-engine](https://github.com/cdnbye/mp4-p2p-engine) - Web Video Delivery Technology with No Plugins for MP4. +- [mp4-sw-p2p-engine](https://github.com/swarm-cloud/mp4-sw-p2p-engine) - Web Video Delivery Technology for MP4. - - + + - + @@ -22,7 +22,7 @@ jwplayer.key = "uoW6qHjBL3KNudxKVnwa3rt5LlTakbko9e6aQ6VUyKQ="; jwplayer('demoplayer').setup({ - file: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8', + file: 'https://wowza.peer5.com/live/smil:bbb_abr.smil/chunklist_b591000.m3u8', width: 512, height: 288, autostart: true, diff --git a/demo/mediaelement.html b/demo/mediaelement.html index 2e3a2364..d7130f5c 100644 --- a/demo/mediaelement.html +++ b/demo/mediaelement.html @@ -9,7 +9,7 @@ diff --git a/demo/openplayer.html b/demo/openplayer.html index 951a2f11..ef77b2b1 100644 --- a/demo/openplayer.html +++ b/demo/openplayer.html @@ -7,7 +7,7 @@ +

download info:

diff --git a/demo/playerjs/index.html b/demo/playerjs/index.html index d1e51a05..ba5ee55d 100644 --- a/demo/playerjs/index.html +++ b/demo/playerjs/index.html @@ -4,7 +4,7 @@ +改为 + + +2. 将本文件夹中的 share2.js 放到目录 /home/work/public/js/ + +3. 用本文件夹中的 dplayer文件夹 替换 /home/work/public/dplayer + +4. 登录cdnbye控制台 https://www.cdnbye.com/oms/ 绑定播放域名 + +5. 刷新浏览器缓存 diff --git a/demo/ppvod/share.js b/demo/ppvod/share.js deleted file mode 100755 index 5b9eba27..00000000 --- a/demo/ppvod/share.js +++ /dev/null @@ -1,343 +0,0 @@ -var time = 0; -var _CK_ = null; -var bOpen = 0; -var bObj = null; -var msgcache = {} -var player; -function BrowserType() { - var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 - var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器 - // var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器 - var isIE = window.ActiveXObject || "ActiveXObject" in window - // var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器 - var isEdge = userAgent.indexOf("Edge") > -1; //判断是否IE的Edge浏览器 - var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器 - var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器 - var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1 && !isEdge; //判断Chrome浏览器 - - if (isIE) { - var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); - reIE.test(userAgent); - var fIEVersion = parseFloat(RegExp["$1"]); - if (userAgent.indexOf('MSIE 6.0') != -1) { - return "IE6"; - } else if (fIEVersion == 7) { return "IE7"; } - else if (fIEVersion == 8) { return "IE8"; } - else if (fIEVersion == 9) { return "IE9"; } - else if (fIEVersion == 10) { return "IE10"; } - else if (userAgent.toLowerCase().match(/rv:([\d.]+)\) like gecko/)) { - return "IE11"; - } - else { return "0" }//IE版本过低 - }//isIE end - - if (isFF) { return "FF"; } - if (isOpera) { return "Opera"; } - if (isSafari) { return "Safari"; } - if (isChrome) { return "Chrome"; } - if (isEdge) { return "Edge"; } -}//myBrowser() end - - -function SetCookie(name, value) { - var Days = 30; - var exp = new Date(); - exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); - document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); -} -function getCookie(name) { - var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); - if (arr != null) return unescape(arr[2]); return null; -} -window.onerror = function () { - return true; -} -function crossdomainCheck() { - if (!hosts) return; - var referagent = document.referrer; - if (redirecturl.indexOf("http") != 0 && redirecturl.indexOf("https") != 0) - redirecturl = "http://" + redirecturl - if (!referagent) - return top.location.href = redirecturl; - - var hostsarr = hosts.split("|"); - var refer = false; - var url = referagent; - var reg = /^http(s)?:\/\/(.*?)\//; - - for (var i = 0; i <= hostsarr.length; i++) { - if (reg.exec(url) && reg.exec(url)[2].indexOf(hostsarr[i]) >= 0) { - refer = true; - break; - } - }; - if (!refer) { - top.location.href = redirecturl; - }; -} - -function orderviewinit(timeout) { - var isAndroid = navigator.userAgent.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 - var isIOS = false; - if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) - isIOS = true - if (isIOS || isAndroid) { - $("#orderview").css("width", "280px"); - $("#orderview").css("height", "320px"); - $("#orderview").css("left", "280px"); - /** - $("#orderview").css("margin-left", "0px"); - $("#orderview").css("margin-top", "0px"); - $("#orderview").css("bototm", "10px"); - $("#orderview").css("left", "-20px"); - $("#orderview").css("display", "block"); - $("#mvideo").css("height", "260px"); - - $(".closeview").hide() - */ - - } - $(".closeview").click(function () { - $("#orderview").hide(); - }); - player.on('pause', function () { - $("#orderview").show(); - }) - -} - - -function init(order) { - - crossdomainCheck(); - var cookieTime = getCookie(videoid + "_time"); //调用已记录的time - //alert("上次播放时间"+ cookieTime +""); - if (!cookieTime || cookieTime == undefined) { //如果没有记录值,则设置时间0开始播放 - cookieTime = 0; - } - function cb() { - if (order) - orderviewinit(); - } - - if (playertype == 'ckplayer') - ckplay(main, xml, cookieTime, cb); - else - dplay(main, xml, cookieTime, cb); - - - -} -function timeHandler(t) { - if (t > -1) - SetCookie(videoid + "_time", t); -} -function loadHandler() { - player.addListener('time', timeHandler); //监听播放时间 -} - -//ckplayer -function ckplay(main, xml, starttime, cb) { - var hostname = window.location.hostname - var port = window.location.port || '80'; - var picurl = window.location.protocol + "//" + window.location.host + pic; - var url = window.location.protocol + "//" + window.location.host + main - if (main.indexOf("/") != 0) - url = window.location.protocol + "//" + window.location.host + "/" + main - xml = window.location.protocol + "//" + window.location.host + xml - var isiPad = navigator.userAgent.match(/iPhone|Linux|Android|iPad|iPod|ios|iOS|Windows Phone|Phone|WebOS/i) != null; - if (isiPad) { - document.getElementById('mvideo').innerHTML = '' - } else { - var videoObject = { - container: '.video', - variable: 'player', - loaded: 'loadHandler', - autoplay: true, - poster: picurl, - adfront: l, //前置广告 - adfronttime: t, - adfrontlink: r, - adpause: d,//暂停广告 - adpausetime: t, - adpauselink: u, - video: url - }; - } - - if (starttime > 0) { - videoObject['seek'] = starttime; - } - player = new ckplayer(videoObject); - cb(); - - -} -var p2pdown = 0; - -//获得多码率列表 -function getPlayList(url, cb) { - - $.get(url, function (result) { - cb(null, result); - }) -} - -function getproxyurl(torrent, url, cb) { - if (torrent == "") return cb(url); - MPlayer.isReady(function (err) { - if (err) return cb(url) - MPlayer.play(torrent, function (err, newurl) { - if (newurl) return cb(newurl) - return cb(url) - }) - }) -} -//dplayer -// var _peerId = '', _peerNum = 0, _totalP2PDownloaded = 0, _totalP2PUploaded = 0; -function dplay(main, xml, starttime, cb) { - var hostname = window.location.hostname - var port = window.location.port || '80'; - var picurl = window.location.protocol + "//" + window.location.host + pic; - var url = window.location.protocol + "//" + window.location.host + main - if (main.indexOf("/") != 0) - url = window.location.protocol + "//" + window.location.host + "/" + main - xml = window.location.protocol + "//" + window.location.host + xml - - if (window.location.protocol.indexOf("https") >= 0) - port = window.location.port ? window.location.port : 443 - else - port = window.location.port ? window.location.port : 80 - // magnet = ""; - getproxyurl(magnet, url, function (url) { - //分析url 获取播放列表 - getPlayList(url, function (err, result) { - // var cdn = new NGCdn(cfg); - - var danmaku = { - id: videoid, // Required, danmaku id, MUST BE UNIQUE, CAN NOT USE THESE IN YOUR NEW PLAYER: `https://dplayer.daoapp.io/list` - api: '/', // Required, danmaku api - token: 'tokendemo', // Optional, danmaku token for api - unlimited: true, - maximum: 100 - } - //danmaku : danmaku, - var playcfg = { - container: document.getElementById('mvideo'), - screenshot: true, - pic: pic, - video: { - url: url, - type: 'customHls', - customType: { - 'customHls': function (video, player) { - const hls = new Hls({ - debug: false, - // Other hlsjsConfig options provided by hls.js - p2pConfig: { - // logLevel: 'debug', - live: false, // 如果是直播设为true - channelIdPrefix: 'ppvod:', - channelId: function (m3u8Url) { - return window.location.hostname + videoid; - } - // Other p2pConfig options provided by CDNBye - } - }); - 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(); - // }); - - } - } - }, - }; - if (danmuenable == 1) - playcfg.danmaku = danmaku - - - //多码率 - if (result) { - var labels = ["标清", "高清", "超清", "蓝光"] - var parser = new m3u8Parser.Parser(); - parser.push(result); - parser.end(); - var qualitys = []; - var playlist = parser.manifest.playlists; - if (playlist && playlist.length > 1) { - // console.log(playlist) - //if proxy replace - - for (var i = 0; i < playlist.length; i++) { - let rurl = playlist[i].uri - if (url.indexOf(":1220") > 0) - rurl = url.replace("index.m3u8", playlist[i].uri) - qualitys.push({ - name: labels[i], - url: rurl, - type: 'hls' - }) - console.log(rurl) - } - playcfg.video.quality = qualitys - delete playcfg.video.url; - playcfg.video.defaultQuality = 0; - // console.log(playcfg) - } - } - player = new DPlayer(playcfg); - player.on('timeupdate', function () { - - var t = player.video.currentTime; - if (t > 0) - SetCookie(videoid + "_time", t); - }) - if (starttime > 0) - player.seek(starttime) - var adELE = $("#indexview"); - player.on('pause', function () { - if (d.length != 0) { - adELE.html("
").show(); - $('.adcontent img').load(function () { - var adwidth = $('.adcontent').width(); - var adheight = $('.adcontent').height(); - $('.adcontent').css('marginLeft', '-' + (adwidth / 2) + 'px'); - $('.adcontent').css('marginTop', '-' + (adheight / 2) + 'px'); - }) - - } - }) - if (l.length != 0) { - adELE.html("
").show(); - $('.adcontent img').load(function () { - var adwidth = $('.adcontent').width(); - var adheight = $('.adcontent').height(); - $('.adcontent').css('marginLeft', '-' + (adwidth / 2) + 'px'); - $('.adcontent').css('marginTop', '-' + (adheight / 2) + 'px'); - }) - setTimeout(() => { - adELE.hide(); - player.play(); - }, t * 1000); - } else { - player.play(); - } - - player.on('play', function () { - $("#orderview").hide(); - $("#indexview").hide(); - }); - cb(); - }) - - }) -} diff --git a/demo/ppvod/share2.js b/demo/ppvod/share2.js new file mode 100644 index 00000000..c977c001 --- /dev/null +++ b/demo/ppvod/share2.js @@ -0,0 +1,351 @@ +var time = 0; +var _CK_ = null; +var bOpen = 0; +var bObj = null; +var msgcache = {} +var player; +function BrowserType() { + var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 + var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器 + // var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器 + var isIE = window.ActiveXObject || "ActiveXObject" in window + // var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器 + var isEdge = userAgent.indexOf("Edge") > -1; //判断是否IE的Edge浏览器 + var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器 + var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器 + var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1 && !isEdge; //判断Chrome浏览器 + + if (isIE) { + var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); + reIE.test(userAgent); + var fIEVersion = parseFloat(RegExp["$1"]); + if (userAgent.indexOf('MSIE 6.0') != -1) { + return "IE6"; + } else if (fIEVersion == 7) { return "IE7"; } + else if (fIEVersion == 8) { return "IE8"; } + else if (fIEVersion == 9) { return "IE9"; } + else if (fIEVersion == 10) { return "IE10"; } + else if (userAgent.toLowerCase().match(/rv:([\d.]+)\) like gecko/)) { + return "IE11"; + } + else { return "0" }//IE版本过低 + }//isIE end + + if (isFF) { return "FF"; } + if (isOpera) { return "Opera"; } + if (isSafari) { return "Safari"; } + if (isChrome) { return "Chrome"; } + if (isEdge) { return "Edge"; } +}//myBrowser() end + + +function SetCookie(name, value) { + var Days = 30; + var exp = new Date(); + exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); + document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); +} +function getCookie(name) { + var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); + if (arr != null) return unescape(arr[2]); return null; +} +window.onerror = function () { + return true; +} + +function crossdomainCheck() { + if (!hosts) return; + var referagent = document.referrer; + if (redirecturl.indexOf("http") != 0 && redirecturl.indexOf("https") != 0 && redirecturl != "/") + redirecturl = "http://" + redirecturl + if (!referagent) + return top.location.href = redirecturl; + + var hostsarr = hosts.split("|"); + var refer = false; + var url = referagent; + var reg = /^http(s)?:\/\/(.*?)\//; + for (var i = 0; i <= hostsarr.length; i++) { + if(url.indexOf(hostsarr[i])>=0){ + //if (reg.exec(url) && reg.exec(url)[2].indexOf(hostsarr[i]) >= 0) { + refer = true; + break; + } + }; + if (refer == false) { + try{ + top.location.href = redirecturl; + }catch(e){ + location.href = "404" + } + }; +} +function orderviewinit(timeout) { + var isAndroid = navigator.userAgent.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 + var isIOS = false; + if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) + isIOS = true + if (isIOS || isAndroid) { + $("#orderview").css("width", "280px"); + $("#orderview").css("height", "320px"); + $("#orderview").css("left", "280px"); + /** + $("#orderview").css("margin-left", "0px"); + $("#orderview").css("margin-top", "0px"); + $("#orderview").css("bototm", "10px"); + $("#orderview").css("left", "-20px"); + $("#orderview").css("display", "block"); + $("#mvideo").css("height", "260px"); + + $(".closeview").hide() + */ + + } + $(".closeview").click(function () { + $("#orderview").hide(); + }); + player.on('pause', function () { + $("#orderview").show(); + }) + +} + + +function init(order) { + crossdomainCheck(); + + var cookieTime = getCookie(videoid + "_time"); //调用已记录的time + //alert("上次播放时间"+ cookieTime +""); + if (!cookieTime || cookieTime == undefined) { //如果没有记录值,则设置时间0开始播放 + cookieTime = 0; + } + function cb() { + if (order) + orderviewinit(); + } + + if (playertype == 'ckplayer') + ckplay(main, xml, cookieTime, cb); + else + dplay(main, xml, cookieTime, cb); + + + +} +function timeHandler(t) { + if (t > -1) + SetCookie(videoid + "_time", t); +} +function loadHandler() { + player.addListener('time', timeHandler); //监听播放时间 +} + +//ckplayer +function ckplay(main, xml, starttime, cb) { + var hostname = window.location.hostname + var port = window.location.port || '80'; + var picurl = window.location.protocol + "//" + window.location.host + pic; + var url = window.location.protocol + "//" + window.location.host + main + if (main.indexOf("/") != 0) + url = window.location.protocol + "//" + window.location.host + "/" + main + xml = window.location.protocol + "//" + window.location.host + xml + var isiPad = navigator.userAgent.match(/iPhone|Linux|Android|iPad|iPod|ios|iOS|Windows Phone|Phone|WebOS/i) != null; + if (isiPad) { + document.getElementById('mvideo').innerHTML = '' + } else { + var videoObject = { + container: '.video', + variable: 'player', + loaded: 'loadHandler', + autoplay: true, + poster: picurl, + adfront: l, //前置广告 + adfronttime: t, + adfrontlink: r, + adpause: d,//暂停广告 + adpausetime: t, + adpauselink: u, + video: url + }; + } + + if (starttime > 0) { + videoObject['seek'] = starttime; + } + player = new ckplayer(videoObject); + cb(); + + +} +var p2pdown = 0; +function getPlayList(url, cb) { + + $.get(url, function (result) { + cb(null, result); + }) +} + + + +function getproxyurl(torrent, url, cb) { + if (torrent == "") return cb(url); + MPlayer.isReady(function (err) { + if (err) return cb(url) + MPlayer.play(torrent, function (err, newurl) { + if (newurl) return cb(newurl) + return cb(url) + }) + }) +} +//dplayer +function dplay(main, xml, starttime, cb) { + var type = 'hls'; + if(Hls.isSupported() && Hls.WEBRTC_SUPPORT) { + type = 'customHls'; + } + var newurl = main + "?skipl=1"; + if (main.indexOf("?") > 0) + newurl = main + "&skipl=1" + getPlayList(newurl, function (err, result) { + var url = main + var playcfg = { + container: document.getElementById('mvideo'), + screenshot: true, + autoplay: true, + pic: pic, + video: { + pic: pic, + url: url, + type: type, + customType: { + 'customHls': function (video, player) { + const hls = new Hls({ + debug: false, + // Other hlsjsConfig options provided by hls.js + p2pConfig: { + live: false, + showSlogan: false, + channelIdPrefix: location.hostname, + channelId: function (url) { + return videoid + }, + segmentId: function (streamId, sn, url, range) { + return ""+sn; + }, + } + }); + hls.loadSource(video.src); + hls.attachMedia(video); + } + }, + }, + }; + + if (result) { + var labels = ["标清", "高清", "超清", "蓝光"] + var parser = new m3u8Parser.Parser(); + parser.push(result); + parser.end(); + var qualitys = []; + var playlist = parser.manifest.playlists; + + if (playlist && playlist.length > 1) { + console.log(playlist, playlist.length) + if (main.indexOf("https") < 0 && main.indexOf("http") < 0) + main = window.location.protocol + "//" + window.location.host + main; + // alert(main) + let mainURL = new URL(main); + for (var i = 0; i < playlist.length; i++) { + let surl = playlist[i].uri; + if (surl.indexOf("https") < 0 && surl.indexOf("http") < 0) { + + surl = mainURL.protocol + "//" + mainURL.host + surl + } + qualitys.push({ + name: labels[i], + url: surl, + type: 'hls' + }) + } + playcfg.video.quality = qualitys + delete playcfg.video.url; + playcfg.video.defaultQuality = 0; + console.log(playcfg) + } + } + + var hostname = window.location.hostname + var port = window.location.port || '80'; + var picurl = window.location.protocol + "//" + window.location.host + pic; + var url = window.location.protocol + "//" + window.location.host + main + if (main.indexOf("/") != 0) + url = window.location.protocol + "//" + window.location.host + "/" + main + xml = window.location.protocol + "//" + window.location.host + xml + + if (window.location.protocol.indexOf("https") >= 0) + port = window.location.port ? window.location.port : 443 + else + port = window.location.port ? window.location.port : 80 + // magnet = ""; + //getproxyurl(magnet, url, function (url) { + //分析url 获取播放列表 + + // var cdn = new NGCdn(cfg); + + var danmaku = { + id: videoid, // Required, danmaku id, MUST BE UNIQUE, CAN NOT USE THESE IN YOUR NEW PLAYER: `https://dplayer.daoapp.io/list` + api: '/', // Required, danmaku api + token: 'tokendemo', // Optional, danmaku token for api + unlimited: true, + maximum: 100 + } + + if (danmuenable == 1) + playcfg.danmaku = danmaku + + + player = new DPlayer(playcfg); + player.on('timeupdate', function () { + + var t = player.video.currentTime; + if (t > 0) + SetCookie(videoid + "_time", t); + }) + if (starttime > 0) + player.seek(starttime) + var adELE = $("#indexview"); + player.on('pause', function () { + if (d.length != 0) { + adELE.html("
").show(); + $('.adcontent img').load(function () { + var adwidth = $('.adcontent').width(); + var adheight = $('.adcontent').height(); + $('.adcontent').css('marginLeft', '-' + (adwidth / 2) + 'px'); + $('.adcontent').css('marginTop', '-' + (adheight / 2) + 'px'); + }) + + } + }) + if (l.length != 0) { + adELE.html("
").show(); + $('.adcontent img').load(function () { + var adwidth = $('.adcontent').width(); + var adheight = $('.adcontent').height(); + $('.adcontent').css('marginLeft', '-' + (adwidth / 2) + 'px'); + $('.adcontent').css('marginTop', '-' + (adheight / 2) + 'px'); + }) + setTimeout(() => { + adELE.hide(); + player.play(); + }, t * 1000); + } else { + player.play(); + } + + player.on('play', function () { + $("#orderview").hide(); + $("#indexview").hide(); + }); + cb(); + }) +} diff --git a/demo/quick-start.html b/demo/quick-start.html index 6dae641f..649b2826 100644 --- a/demo/quick-start.html +++ b/demo/quick-start.html @@ -6,7 +6,7 @@

download info: