/** * @license Copyright (c) 2015-2019 Radiant Media Player * rmp-detachable-player | https://github.com/radiantmediaplayer/rmp-detachable-player */ (function () { 'use strict'; // reference to containers var playerId = 'rmpPlayer0'; var container = document.getElementById(playerId); var attachContainer = document.getElementById('attach-container0'); var detachContainer = document.getElementById('detach-container0'); if (!container || !attachContainer || !detachContainer) { return; } // our player instance var rmp = new RadiantMP(playerId); // player framework var rmpFW = rmp.getFramework(); var src = { mp4: "https://s3.kikar.co.il/data/auto/flv/to/7opiv5fb.m4v" }; var relatedData = [{ src: src, "contentMetadata": { "poster": [ "https://s3.kikar.co.il/data/auto/nadm/ls/mhx2qpy9.jpeg", ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581889.smil/playlist.m3u8" }, "contentMetadata": { "title": "כינור - וריקוד סוער: חנוכה אצל האדמור ממושולו", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/tc/3au5gaz4.jpg", "duration":"03:00", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/tc/3au5gaz4.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581881.smil/playlist.m3u8" }, "contentMetadata": { "title": "מטיילים נתקעו בשל הגשם העז וחולצו; צפו", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/ce/2t7bqhno.jpg", "duration":"02:02", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/ce/2t7bqhno.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581880.smil/playlist.m3u8" }, "contentMetadata": { "title": "מרוקו: 'אנו מצפים להכפלה פי 4 של תיירים'", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/sj/ty9v9loj.jpg", "duration":"03:20", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/sj/ty9v9loj.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581860.smil/playlist.m3u8" }, "contentMetadata": { "title": "בית מתתיהו: ההדלקה אצל הגאון רבי ברוך ויסבקר - והמסיבה בישיבה", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/nf/sd14pqyf.jpg", "duration":"02:49", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/nf/sd14pqyf.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581837.smil/playlist.m3u8" }, "contentMetadata": { "title": "יעקב יצחק ויינגרטן מגיש: א לעכטיגקייט", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/fh/i3yf8pje.jpg", "duration":"03:46", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/fh/i3yf8pje.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581836.smil/playlist.m3u8" }, "contentMetadata": { "title": "שטרסבורג: הרב הדליק אצל שגריר מרוקו", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/cp/c3sr876c.jpg", "duration":"04:39", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/cp/c3sr876c.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581835.smil/playlist.m3u8" }, "contentMetadata": { "title": "מעמד כבוד התורה בראשות בן האדמור מבעלזא", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/fp/akfkwdqw.jpg", "duration":"13:00", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/fp/akfkwdqw.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581813.smil/playlist.m3u8" }, "contentMetadata": { "title": "כשסמוטריץ' התחזן בהדלקה בחבד • צפו", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/kg/nob3wovg.jpg", "duration":"00:44", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/kg/nob3wovg.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581808.smil/playlist.m3u8" }, "contentMetadata": { "title": "נתניהו יתחסן במוצש: אווירת סוף קורס", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/hh/yslyjiwy.jpg", "duration":"02:30", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/hh/yslyjiwy.jpg" ] } }, { src: { hls: "https://cdna.streamgates.net/kikar_vod/581803.smil/playlist.m3u8" }, "contentMetadata": { "title": "ראיון ופרק חדש בסדרת המתח שמי ברזל", "thumbnail": "https://s3.kikar.co.il/data/auto/flv/thumb/ec/5lvmybpw.jpg", "duration":"05:11", "poster": [ "https://s3.kikar.co.il/data/auto/flv/thumb/ec/5lvmybpw.jpg" ] } }, ]; // we define our player streaming URLs and settings var settings = { width: 470, height: 264, muted: true, /*pip: true,*/ autoplay: true, src: src, retryParameters: { manifest: { timeout: 10000, // timeout in ms, after which we abort a request maxTimeout: 64000, // maximum timeout in ms for all attempts before we fail maxAttempts: 3, // the maximum number of requests before we fail delay: 1000 // the base delay in ms between retries }, levels: { timeout: 10000, maxTimeout: 64000, maxAttempts: 5, delay: 1000 }, segment: { timeout: 20000, maxTimeout: 64000, maxAttempts: 7, delay: 1000 } }, speed: true, skin: 's3', relatedData: relatedData, relatedUpNextAutoplay: false, relatedUpNextOffset: 1, licenseKey: 'd3NhYnFqZGpsZUAxNTgwNzY0', ads: true, // ad label that can be displayed within player UI while a linear ad is playing labels: { ads: { controlBarCustomMessage: 'Ads' } }, // We tell the player to use rmp-vast to load and parse VAST resources adParser: 'ima', // adOutStream: true, // skin: 'outstream', // we will autoplay our outstream ad unit when first in view so muted we must use // muted: true, adTagUrl: 'https://pubads.g.doubleclick.net/gampad/ads?sz=400x300&iu=/14723412/vast-desktop&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url=[referrer_url]&description_url=[description_url]&correlator=[timestamp]', adTagWaterfall: [ 'https://pubads.g.doubleclick.net/gampad/ads?sz=400x300&iu=/14723412/vast-desktop&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url=[referrer_url]&description_url=[description_url]&correlator=[timestamp]', ], // we use client-side waterfalling in this case (optional) poster: "https://s3.kikar.co.il/data/auto/nadm/ls/mhx2qpy9.jpeg", ///autoHeightMode: true, detectAutoplayCapabilities: true, airplay: true, googleCast:true, gaTrackingId: 'UA-8661839-20', gaCategory: 'kikar', gaLabel: $(document).find("title").text(), gaEvents: ['context', 'ready', 'playerstart', 'error', 'adimpression', 'adloadererror', 'aderror'], preload: 'auto', }; // our app variables var debug = true; var _log = function(data) { if (window.console && window.console.log && data) { window.console.log(data); } }; var playerAttached = true; var viewablePreviousRatio = 0.5; var firstView = false; // function to run when the player should detach var _detachPlayer = function () { playerAttached = false; rmpFW.addClass(detachContainer, 'rmp-detach'); rmp.resize(); }; // function to run when the player should be attached to its original location var _attachPlayer = function () { playerAttached = true; rmpFW.removeClass(detachContainer, 'rmp-detach'); rmp.resize(); }; var _handleIntersect = function (entries) { entries.forEach(function (entry) { if (entry.intersectionRatio > viewablePreviousRatio) { if (debug) { _log('player comes into view'); } // we do not want to detach player before viewer has scrolled to it at least once if (!firstView) { firstView = true; // here we automatically play our outstream ad when player first comes into view rmp.play(); } if (!playerAttached) { _attachPlayer(); } } else { if (debug) { _log('player comes out of view'); } if (playerAttached && firstView) { _detachPlayer(); } } viewablePreviousRatio = entry.intersectionRatio; }); }; var _attachViewableObserver = function () { container.removeEventListener('ready', _attachViewableObserver); if (typeof window.IntersectionObserver !== 'undefined') { var options = { root: null, rootMargin: '0px', threshold: [0.5], }; var viewableObserver = new IntersectionObserver(_handleIntersect, options); viewableObserver.observe(attachContainer); } }; // when player is ready create IntersectionObserver container.addEventListener('ready', _attachViewableObserver); // we init the player rmp.init(settings); })();