Îðëà
Îáëàñòè
Êîìïàíèé
Ïîëüçîâàòåëè
Ãàëåðåÿ
Ôèêñèðîâàííûå íîâîñòè
Îðëà
Îòçûâû î ôèðìàõ
Òàðèôû
Ïîëüçîâàòåëè
Îáëàñòè
Áàíêîìàòû
Òîðãîâûå òî÷êè
Äîñêà îáúÿâëåíèé
Êóðñû âàëþò
Ñêèäêè
îðãàíèçàöèè Îðëà
îðãàíèçàöèè îáëàñòè
òîâàðû
ñàéòû
ñàéòû Îðåë
Äàííûå
Ðàçäåëû
Ïîèñê
Ïîèñê çàïðîñû
Ñòàòèñòèêà
Ïîêàçû êàòàëîãà îðãàíèçàöèé
Ñòàòèñòèêà êëèåíòû
Ïîëüçîâàòåëè
Ñàéòû
Óïðàâëåíèå ñàéòîì
Àíêåòà
Àïòåêè
Àôèøà
Àôèøà íîâàÿ
Áàííåðû
Áèçíåñ >
Âèêòîðèíà
Ãîëîñîâàíèå
Ãîñòü íà ñàéòå
Èñòîðèè
Êàëåíäàðü ñîáûòèé
Êàòàëîãè >
Êîíêóðñ êðàñîòû
Êîíêóðñ àóäèî
Êîíñóëüòàöèè
Ìåíþ
Íîâîå íà ñàéòå
Íîâîñòè >
Îðãàíèçàöèè >
Ïðîãðàììà ÒÂ
Ïóáëèêàöèè
Ðàçäåëû ñàéòà
Ðàññûëêà
Ðåñòîðàíû
Ñåêðåò ôèðìû >
Ñåðâèñû >
Ññûëêè
Òåñòû
Ôàéëîâûé ìåíåäæåð
Ôîðóì
Ôîòîãàëåðåÿ
Îáðàòíàÿ ñâÿçü
Íåäâèæèìîñòü
Íîâûé ãîä
Òåêñòû
Ïîëüçîâàòåëè
Þðèäè÷åñêèé ðåéòèíã
Îòçûâû íà òîâàðû
Áàí ïîëüçîâàòåëåé
Æàëîáû
Íîâûå òåñòû
Êîðîíàâèðóñ
Ôàéëîâûé ìåíåäæåð
Èìÿ ôàéëà
DashPlayer_old.js
Ñîäåðæèìîå
var DashPlayer = function (className) { var _ = this; _.tagClassName = className; _.mediaSource = new MediaSource(); _.sourceBuffer = null; _.manifestUrl = null; _.videoPlayer = null; _.mediaPath = null; _.initFile = null; _.bufferedInitFile = false; _.timer = null; _.mediaBuffer = []; _.availabilityStartTime = null; _.queueFiles = []; _.lastTimeDownloadFile = 0; _.queueFilesTest = []; _.testTime = 0; _.show_debug = true; _.progressbar = null; // _.progressbuff = null; _.start = true; _.showBuffInterval = null; _.init = function () { // _.debug("Инициализаци�"); var video = document.querySelectorAll(_.tagClassName)[0]; _.progressbar = document.querySelector("#progressbar"); // _.progressbuff = document.querySelector("#progressbuff"); if (typeof video === "undefined" || video.nodeName != "VIDEO") { _.error("ТЕГ не �вл�ет�� видео объектом"); return; } _.videoPlayer = video; // _.videoPlayer.pause(); _.manifestUrl = _.videoPlayer.getAttribute("src"); _.mediaPath = _.manifestUrl.replace("manifest.mpd", "") _.videoPlayer.src = window.URL.createObjectURL(_.mediaSource); // _.videoPlayer.play(); _.videoPlayer.addEventListener('ended', endVideo, false); // _.videoPlayer.addEventListener('waiting', canplayVideo, false); _.videoPlayer.addEventListener('loadeddata', loadeddataVideo, false); _.mediaSource.addEventListener('sourceopen', openMediaSource, false); _.mediaSource.addEventListener('sourceclose', closeMediaSource, false); _.mediaSource.addEventListener('readystatechange', readystatechangeMediaSource, false); _.timer = setInterval(_.loadManifest, 1000); _.downloadQueueFiles(); _.pushSourceBuffer(); _.showBuffInterval = setInterval(showBuff, 100); // console.log(navigator.plugins.length); } _.loadManifest = function () { //_.debug("Загрузка Манифе�та: " + _.manifestUrl); var xhr = new XMLHttpRequest(); xhr.open('GET', _.manifestUrl, true); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.onload = function (e) { //_.debug("Ответ от �ервера: " + xhr.status); var xml = (new window.DOMParser()).parseFromString(xhr.responseText, "text/xml"); var MPD = xml.documentElement; //var Initialization = MPD.getElementsByTagName("Initialization"); if (xml.documentElement.getElementsByTagName("Initialization").length === 0) { return; } var InitUrl = xml.documentElement.getElementsByTagName("Initialization")[0].attributes.sourceURL.value; var start = false; if (_.initFile === null) { start = true; } _.loadInitFile(InitUrl); var Segs = xml.documentElement.getElementsByTagName("SegmentURL"); for (var i = (start ? Segs.length - 1 : 0); i < Segs.length; i++) { var url = Segs[i].attributes.media.value; // for(var s = 0; s < _.queueFiles.length; s++){ // if(_.queueFiles[s].equals == url.toString()){ // break; // } // _.info(url.toString(), _.queueFiles); // _.queueFiles.push(url.toString()); // } var time = _.getFileTimestamp(url.toString()); if (_.lastTimeDownloadFile < time) { //_.info(url.toString(), _.queueFilesTest); _.queueFiles.push(url.toString()); _.lastTimeDownloadFile = time; } //_.loadFile(url.replace("manifest.mpd", "") + Segs[i].attributes.media.value, player); } var mm = new Date(); var time = MPD.attributes.availabilityStartTime.value.match(/(\d+):(\d+):(\d+)/i); mm.setHours(parseInt(time[1]) + 3); mm.setMinutes(parseInt(time[2])); mm.setSeconds(parseInt(time[3])); mm.setMilliseconds(0); _.availabilityStartTime = new Date(mm.getTime()); //_.info(_.availabilityStartTime.getTime(), _.availabilityStartTime); } xhr.send(); } _.getFileTimestamp = function (file) { var time = file.match(/\/(\d+).m4s/i); //_.debug(time[1]); return time[1]; } _.downloadQueueFiles = function () { if (_.queueFiles.length === 0) { setTimeout(_.downloadQueueFiles, 200); return; } var fileUrl = _.queueFiles.shift(); var xhr = new XMLHttpRequest(); xhr.open('GET', _.mediaPath + fileUrl, true); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.responseType = 'arraybuffer'; xhr.onload = function (e) { //_.debug("Ответ от �ервера: " + xhr.status); var uInt8Array = new Uint8Array(xhr.response); // var moof = (uInt8Array[0] << 24) + (uInt8Array[1] << 16) + (uInt8Array[2] << 8) + (uInt8Array[3]); // var mfhd = (uInt8Array[8] << 24) + (uInt8Array[9] << 16) + (uInt8Array[10] << 8) + (uInt8Array[11]); var trun_count = (uInt8Array[64] << 24) + (uInt8Array[65] << 16) + (uInt8Array[66] << 8) + (uInt8Array[67]); var duration = 0; var trs = 72; var lens = []; for (var tci = 0; tci < trun_count; tci++) { var n = trs + 16 * tci; var len = (uInt8Array[n] << 24) + (uInt8Array[n + 1] << 16) + (uInt8Array[n + 2] << 8) + (uInt8Array[n + 3]); if (typeof (lens[len]) === "undefined") { lens[len] = 1; } else { lens[len] = lens[len] + 1; } } for (var tci = 0; tci < trun_count; tci++) { var n = trs + 16 * tci; var len = (uInt8Array[n] << 24) + (uInt8Array[n + 1] << 16) + (uInt8Array[n + 2] << 8) + (uInt8Array[n + 3]); if (len === 0) { var max = []; for (var i = 1; i < lens.length; ++i) { max[lens[i]] = i; } len = max[max.length - 1];//0x32; uInt8Array[n + 3] = len; } duration = duration + len; } // console.log(lens); var hl = (uInt8Array[0] << 24) + (uInt8Array[1] << 16) + (uInt8Array[2] << 8) + (uInt8Array[3]); var ts = (uInt8Array[hl - 4] << 24) + (uInt8Array[hl - 3] << 16) + (uInt8Array[hl - 2] << 8) + (uInt8Array[hl - 1]); //var duration = (uInt8Array[hl + 8] << 24) + (uInt8Array[hl + 9] << 16) + (uInt8Array[hl + 10] << 8) + (uInt8Array[hl + 11]); // _.debug(ts + " - " + _.getTimeTsFromDate(_.getDate(_.availabilityStartTime.getTime() + ts))); var b = _.getInt64Bytes(_.getTimeTsFromDate(_.getDate(_.availabilityStartTime.getTime() + ts))) // _.info("ts", e); // _.debug("url=" + e.target.responseURL + " ts=" + ts / 1000 + " duration=" + duration / 1000 + " end=" + (ts + duration) / 1000); uInt8Array[hl - 4] = b[0]; uInt8Array[hl - 3] = b[1]; uInt8Array[hl - 2] = b[2]; uInt8Array[hl - 1] = b[3]; // _.info("duration=", duration/6/6); // ts = (uInt8Array[hl - 4] << 24) + (uInt8Array[hl - 3] << 16) + (uInt8Array[hl - 2] << 8) + (uInt8Array[hl - 1]); // _.info("ts", ts); // var b = _.getInt64Bytes(2000); // uInt8Array[hl + 8] = b[0]; // uInt8Array[hl + 9] = b[1]; // uInt8Array[hl + 10] = b[2]; // uInt8Array[hl + 11] = b[3]; // _.testTime = _.testTime + duration/6/6 - 500; _.mediaBuffer.push(uInt8Array); _.downloadQueueFiles(); // _.removeSourceBuffer(); } xhr.send(); } _.loadInitFile = function (url) { if (_.initFile !== null) { return; } _.debug("Загрузка файла инициализации: " + _.mediaPath + url); var xhr = new XMLHttpRequest(); xhr.open('GET', _.mediaPath + url, true); xhr.setRequestHeader('Cache-Control', 'no-cache'); xhr.responseType = 'arraybuffer'; xhr.onload = function (e) { // _.debug("Ответ от �ервера: " + xhr.status); var uInt8Array = new Uint8Array(xhr.response); _.initFile = uInt8Array; // _.debug("Получено байт: " + _.initFile.length); } xhr.send(); } _.pushSourceBuffer = function () { // _.debug("pushSourceBuffer"); if (_.mediaBuffer.length === 0) { // _.debug("_.mediaBuffer.length === 0"); setTimeout(_.pushSourceBuffer, 200); return; } if (_.sourceBuffer === null) { // _.error("sourceBuffer === NULL"); return; } if (_.sourceBuffer.updating === false) { if (_.bufferedInitFile === false) { // _.debug("pushSourceBuffer INIT FILE"); _.sourceBuffer.appendBuffer(_.initFile); _.bufferedInitFile = true; _.pushSourceBuffer(); return; } // console.log(_.mediaSource.readyState); var media = _.mediaBuffer.shift(); try { _.sourceBuffer.appendBuffer(media); } catch (e) { // _.debug("_______________________ERROR__________________"); _.error(e); setTimeout(_.pushSourceBuffer, 200); return; } // _.bufferedInitFile = false; _.pushSourceBuffer(); } else { // console.log(_.sourceBuffer.updating, _.mediaSource.readyState); setTimeout(_.pushSourceBuffer, 200); return; } if (_.sourceBuffer.buffered.length > 3) { _.videoPlayer.currentTime = _.sourceBuffer.buffered.start(3); } } _.removeSourceBuffer = function () { if (_.sourceBuffer.buffered.length > 2 && _.sourceBuffer.updating === false) { if (_.videoPlayer.currentTime > _.sourceBuffer.buffered.end(0) + 2) { _.debug("remove start time: " + _.sourceBuffer.buffered.start(0) + " end time:" + _.sourceBuffer.buffered.end(0) + " duration: " + (_.sourceBuffer.buffered.end(0) - _.sourceBuffer.buffered.start(0))); _.sourceBuffer.remove(0, _.videoPlayer.currentTime - 2); } } if (_.sourceBuffer.buffered.length > 0) { var buflen = _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) - _.sourceBuffer.buffered.start(0); var oldBuff = _.videoPlayer.currentTime - _.sourceBuffer.buffered.start(0); if (oldBuff > 5) { _.sourceBuffer.remove(0, _.videoPlayer.currentTime - 5); } //var buflen = (_.sourceBuffer.buffered.end(0) - _.sourceBuffer.buffered.start(0)); if (buflen > 40 && _.videoPlayer.currentTime > (_.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) - 10) && _.sourceBuffer.updating === false) { _.debug("remove buf=" + buflen + " " + _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) + " " + _.sourceBuffer.buffered.start(0)); _.sourceBuffer.remove(0, (_.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) - 20)); } // if (buflen > 30 && _.sourceBuffer.updating === false) { // _.debug("remove start time: " + _.sourceBuffer.buffered.start(0) + " end time:" + (_.videoPlayer.currentTime - 10) + " duration: " + ((_.videoPlayer.currentTime - 10) - _.sourceBuffer.buffered.start(0))); // _.sourceBuffer.remove(0, (_.videoPlayer.currentTime - 10)); // } } setTimeout(_.removeSourceBuffer, 1000); } _.getDate = function(ts){ var mm = new Date(0); mm.setTime(ts); return mm; } _.getTimeTsFromDate = function(date){ var mm = date.getHours() * 3600 + date.getMinutes() * 60 + date.getSeconds(); return mm * 1000 + date.getMilliseconds(); } function closeMediaSource(e) { _.debug("source CLOSE"); console.log(e); } function openMediaSource(e) { _.debug("sourceopen"); try { _.sourceBuffer = _.mediaSource.addSourceBuffer('video/mp4; codecs=avc1.4D401E'); // _.sourceBuffer.mode = 'sequence'; // _.mediaSource.duration = 600; _.sourceBuffer.addEventListener('updateend', sourceBufferUpdateEnd, false); _.sourceBuffer.addEventListener('update', sourceBufferUpdate, false); _.videoPlayer.addEventListener("timeupdate", videoTimeupdate, false); } catch (e) { _.debug("_______________________ERROR__________________"); _.error(e); return; } _.loadManifest(); } function canplayVideo(e) { //_.info("waiting", e); if (_.sourceBuffer.buffered.length > 2 && _.videoPlayer.currentTime > Math.floor(_.sourceBuffer.buffered.end(0)) + 1) { _.debug("currentTime = " + _.videoPlayer.currentTime + " chanck stop = " + _.sourceBuffer.buffered.end(0)); _.videoPlayer.currentTime = _.sourceBuffer.buffered.start(1); } //_.videoPlayer.currentTime = 1500; } function loadeddataVideo(e) { //videoWidth //videoHeight //offsetHeight //offsetWidth var k = Math.floor(_.videoPlayer.videoWidth / _.videoPlayer.videoHeight * 10) / 10; if (k === 1.3) { // 4/3 _.videoPlayer.width = 1024; _.videoPlayer.height = 768; } else if (k === 1.7) { // 16/9 _.videoPlayer.width = 1024; _.videoPlayer.height = 576; } //_.info("waiting", e); // if (_.sourceBuffer.buffered.length > 2 && _.videoPlayer.currentTime > Math.floor(_.sourceBuffer.buffered.end(0)) + 1) { // _.info("e = ", k); // _.videoPlayer.currentTime = _.sourceBuffer.buffered.start(1); // } //_.videoPlayer.currentTime = 1500; } function sourceBufferUpdateEnd(e) { if (typeof (_.sourceBuffer) === "undefined") { _.error("typeof(_.sourceBuffer) === undefined") return; } if (_.sourceBuffer.buffered.length > 0) { if (_.start === true) { _.start = false; _.videoPlayer.currentTime = _.sourceBuffer.buffered.start(0); _.videoPlayer.play(); } var buff = _.getBuffered(); if (buff.buffered <= 1) { _.debug("BUFFERED < 1sec end=" + _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) + " time=" + _.videoPlayer.currentTime); } else if (buff.buffered >= 3) { if (_.videoPlayer.readyState >= 2) { if (_.videoPlayer.paused === true) { // _.videoPlayer.play(); } } } if (buff.buffered > 10) { _.videoPlayer.currentTime = _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) - 2; // console.log("LEN > 10", len); for (var i = 0; i < _.sourceBuffer.buffered.length; i++) { _.debug("#" + i + " start=" + _.sourceBuffer.buffered.start(i) + " end=" + _.sourceBuffer.buffered.end(i)); } } } else { _.info("BUFFERED", _.sourceBuffer.buffered.length); _.info("BUFFERED", e); return; } if (_.sourceBuffer.buffered.length > 0 && _.videoPlayer.currentTime < _.sourceBuffer.buffered.start(0)) { _.videoPlayer.currentTime = _.sourceBuffer.buffered.start(0); } } _.getBuffered = function () { var buff = {}; var buffered_len = _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) - _.videoPlayer.currentTime; var buffer_len = _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1) - _.sourceBuffer.buffered.start(0); buff.buffered = buffered_len; buff.buffer = buffer_len; return buff; } function sourceBufferUpdate(e) { //_.debug("sourceBufferUpdate"); //_.info("sourceBufferUpdate",e); } function readystatechangeMediaSource(e) { _.debug("2"); } function endVideo(e) { _.debug("3"); } function videoTimeupdate(e) { } function showBuff(){ var start = _.sourceBuffer.buffered.start(0); var end = _.sourceBuffer.buffered.end(_.sourceBuffer.buffered.length - 1); var time = _.videoPlayer.currentTime; //background: rgba(0, 0, 0, 0) linear-gradient(to right, red, red 16%, rgb(50, 205, 50) 16%) repeat scroll 0% 0%; var dur = end - start; var pos = time - start; var proc = Math.round(100 / (dur / pos)); var proc2 = Math.round(100 / (5 / (end - time))); // _.progressbar.style = "background: rgba(0, 0, 0, 0) linear-gradient(to right, #c0c0c0, #c0c0c0 "+proc+"%, rgb(0, 0, 128) "+proc+"%) repeat scroll 0% 0%;"; // _.progressbuff.style = "background: rgba(0, 0, 0, 0) linear-gradient(to right, #00c000, #00c000 " + proc2 + "%, rgb(128, 128, 128) " + proc2 + "%) repeat scroll 0% 0%;"; // _.progressbuff.innerHTML = (Math.round((end - time) * 100) / 100); } _.debug = function (message) { if (_.show_debug === false) { return; } var debug_color = "color:#ffd20a;font-weight:bold"; var default_color = "color:#000000;font-weight:normal;font-style:italic"; console.log("%cDEBUG: %c" + message, debug_color, default_color); } _.error = function (message) { var error_color = "color:#ff0000;font-weight:bold"; var default_color = "color:#000000;font-weight:normal;font-style:italic"; // console.log("%cERROR: %c" + message, error_color, default_color); } _.info = function (message, obj) { var error_color = "color:#0000ff;font-weight:bold"; var default_color = "color:#000000;font-weight:normal;font-style:italic"; console.log("%cINFO: %c" + message, error_color, default_color, obj); } _.getInt64Bytes = function (x) { var bytes = []; var i = 4; do { bytes[--i] = x & (255); x = x >> 8; } while (i) return bytes; } _.timestampToTime = function (timestamp) { timestamp = timestamp / 1000; var h = Math.floor(timestamp / 60 / 60 / 60); var m = Math.floor(timestamp / 60 / 60); var s = timestamp / 60; var time = ""; if (h > 0) { time = time + h + ":"; } time = time + m + ":"; time = time + s; return time; } _.init(); }
/js/2.0/vendor/
Èìÿ
Äàòà
Ðàçìåð
..
2026-05-25
axios
2019-02-12
bootstrap
2019-02-13
ckeditor4-standart
2020-06-08
dmitry
2017-06-23
flexslider
2017-03-21
flowplayer
2017-03-21
jquery
2019-02-13
popper
2019-02-13
swiper
2017-03-21
uikit
2017-06-13
underscore-1.9.1
2019-02-12
vue
2020-02-03
DashPlayer_old.js
2019-03-21
16 êá.
fontawesome.min.js
2019-02-14
1088 êá.
jQuery.MultiFile.min.js
2017-02-14
10 êá.
jquery.min.js
2017-02-14
84 êá.
/js/2.0/vendor
Çàãðóçèòü ôàéëû
Ôàéë 1
Ôàéë 2
Ôàéë 3