{"id":2,"date":"2023-04-11T10:19:02","date_gmt":"2023-04-11T10:19:02","guid":{"rendered":"https:\/\/pamfmstereo.com\/?page_id=2"},"modified":"2026-04-01T06:14:25","modified_gmt":"2026-04-01T10:14:25","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/pamfmstereo.com\/?page_id=2","title":{"rendered":"PAM FM \u2013 Live"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>&#x1f534; PAM TV LIVE<\/title>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@latest\"><\/script>\n\n<style>\nbody {\n    margin:0;\n    background:#0a0a0a;\n    font-family:Arial;\n    color:white;\n    text-align:center;\n}\n\n\/* CONTAINER *\/\n.video-container {\n    position:relative;\n    max-width:1000px;\n    margin:30px auto;\n    background:black;\n    border-radius:12px;\n    overflow:hidden;\n}\n\nvideo {\n    width:100%;\n}\n\n\/* &#x1f534; LIVE BADGE *\/\n.live-badge {\n    position:absolute;\n    top:10px;\n    left:10px;\n    background:red;\n    padding:6px 12px;\n    border-radius:6px;\n    font-weight:bold;\n}\n\n\/* &#x1f465; VIEWERS *\/\n.viewers {\n    position:absolute;\n    top:10px;\n    right:10px;\n    background:rgba(0,0,0,0.7);\n    padding:6px 12px;\n    border-radius:6px;\n}\n\n\/* &#x1f3ac; OFFLINE *\/\n.offline {\n    position:absolute;\n    top:50%;\n    left:50%;\n    transform:translate(-50%,-50%);\n    font-size:22px;\n    background:rgba(0,0,0,0.7);\n    padding:15px 25px;\n    border-radius:10px;\n    display:none;\n}\n\n\/* &#x1f504; LOADER *\/\n.loader {\n    position:absolute;\n    top:50%;\n    left:50%;\n    transform:translate(-50%,-50%);\n    display:none;\n}\n\n.spinner {\n    border:4px solid rgba(255,255,255,0.2);\n    border-top:4px solid #2196F3;\n    border-radius:50%;\n    width:50px;\n    height:50px;\n    animation:spin 1s linear infinite;\n}\n\n@keyframes spin {\n    100% { transform:rotate(360deg); }\n}\n\n\/* &#x1f4f2; SHARE *\/\n.share-container {\n    display:flex;\n    justify-content:center;\n    gap:10px;\n    margin:20px auto;\n    flex-wrap:wrap;\n}\n\n.share-btn {\n    padding:10px 16px;\n    border-radius:8px;\n    font-weight:600;\n    text-decoration:none;\n    color:white;\n    transition:0.3s;\n}\n\n.share-btn:hover {\n    transform:translateY(-3px);\n}\n\n.fb { background:#1877f2; }\n.wa { background:#25D366; }\n.x  { background:#000; }\n<\/style>\n<\/head>\n\n<body>\n\n<h2>&#x1f4fa; PAM TV EN DIRECT<\/h2>\n\n<div class=\"video-container\">\n\n    <div class=\"viewers\">&#x1f465; <span id=\"viewers\">0<\/span><\/div>\n\n    <video id=\"video\" autoplay muted controls playsinline><\/video>\n\n    <div class=\"offline\" id=\"offline\">&#x1f4e1; En attente du signal&#8230;<\/div>\n\n    <div class=\"loader\" id=\"loader\">\n        <div class=\"spinner\"><\/div>\n    <\/div>\n\n<\/div>\n\n<!-- &#x1f4f2; SHARE BUTTONS -->\n<div class=\"share-container\">\n    <a id=\"fbShare\" target=\"_blank\" class=\"share-btn fb\">&#x1f4d8; Facebook<\/a>\n    <a id=\"waShare\" target=\"_blank\" class=\"share-btn wa\">&#x1f4ac; WhatsApp<\/a>\n    <a id=\"xShare\" target=\"_blank\" class=\"share-btn x\">&#x1f426; X<\/a>\n<\/div>\n\n<script>\nconst video = document.getElementById('video');\nconst loader = document.getElementById('loader');\nconst offline = document.getElementById('offline');\nconst liveBadge = document.getElementById('liveBadge');\n\n\/\/ =======================\n\/\/ &#x1f3ac; PLAYER HLS\n\/\/ =======================\n\nfunction showLoader(){ loader.style.display='block'; }\nfunction hideLoader(){ loader.style.display='none'; }\n\nfunction showOffline(){\n    offline.style.display='block';\n    liveBadge.innerText = \"&#x26ab; OFFLINE\";\n    liveBadge.style.background = \"gray\";\n}\n\nfunction showLive(){\n    offline.style.display='none';\n    liveBadge.innerText = \"&#x1f534; LIVE\";\n    liveBadge.style.background = \"red\";\n}\n\nif (Hls.isSupported()) {\n\n    const hls = new Hls({\n        liveSyncDuration: 6,\n        liveMaxLatencyDuration: 12,\n        maxBufferLength: 30,\n        maxMaxBufferLength: 60\n    });\n\n    showLoader();\n\n    hls.loadSource('https:\/\/tv.pamfmstereo.com\/hls\/stream.m3u8');\n    hls.attachMedia(video);\n\n    hls.on(Hls.Events.MANIFEST_PARSED, () => {\n        video.play().catch(()=>{});\n        hideLoader();\n        showLive();\n    });\n\n    hls.on(Hls.Events.ERROR, function (event, data) {\n        if (data.fatal) {\n            showLoader();\n            setTimeout(() => {\n                hls.loadSource('https:\/\/tv.pamfmstereo.com\/hls\/stream.m3u8');\n                hls.startLoad();\n            }, 3000);\n        }\n    });\n\n} else if (video.canPlayType('application\/vnd.apple.mpegurl')) {\n\n    video.src = 'https:\/\/tv.pamfmstereo.com\/hls\/stream.m3u8';\n\n    video.addEventListener('loadedmetadata', () => {\n        video.play().catch(()=>{});\n        hideLoader();\n        showLive();\n    });\n}\n\n\/\/ loader events\nvideo.addEventListener('waiting', showLoader);\nvideo.addEventListener('playing', () => {\n    hideLoader();\n    showLive();\n});\n\n\/\/ OFFLINE si bloqu\u00e9\nlet timeout;\nvideo.addEventListener('waiting', () => {\n    clearTimeout(timeout);\n    timeout = setTimeout(showOffline, 8000);\n});\n\nvideo.addEventListener('playing', () => {\n    clearTimeout(timeout);\n});\n\n\/\/ =======================\n\/\/ &#x1f465; VIEWERS\n\/\/ =======================\n\nasync function updateViewers(){\n    try {\n        const res = await fetch('\/stat');\n        const text = await res.text();\n        const match = text.match(\/nclients=\"(\\\\d+)\"\/);\n        if (match){\n            document.getElementById('viewers').innerText = match[1];\n        }\n    } catch(e){}\n}\n\nsetInterval(updateViewers, 5000);\nupdateViewers();\n\n\/\/ =======================\n\/\/ &#x1f4f2; SHARE LINKS\n\/\/ =======================\n\nconst url = encodeURIComponent(window.location.href);\nconst text = encodeURIComponent(\"Regardez PAM TV en direct &#x1f4fa;&#x1f525;\");\n\ndocument.getElementById(\"fbShare\").href =\n\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=\" + url;\n\ndocument.getElementById(\"waShare\").href =\n\"https:\/\/wa.me\/?text=\" + text + \"%20\" + url;\n\ndocument.getElementById(\"xShare\").href =\n\"https:\/\/twitter.com\/intent\/tweet?text=\" + text + \"&url=\" + url;\n\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>PAM TV (En direct)<br \/>\nGade Fim, Match, Mizik, ak Emisyon nou yo an dir\u00e8k 24\/7&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1043,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"tmpl-front-page.php","meta":{"advanced_seo_description":"Gade fim ak mizik epi swiv tout gwo ev\u00e8nman yo 24\/7 an dir\u00e8k...","jetpack_seo_html_title":"PAM TV (En direct) 24\/7","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-2","page","type-page","status-publish","has-post-thumbnail","hentry"],"jetpack-related-posts":[],"jetpack_shortlink":"https:\/\/wp.me\/PdKP5f-2","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2"}],"version-history":[{"count":246,"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":1931,"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions\/1931"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=\/wp\/v2\/media\/1043"}],"wp:attachment":[{"href":"https:\/\/pamfmstereo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}