{"id":8250,"date":"2026-09-07T23:23:50","date_gmt":"2026-09-08T02:23:50","guid":{"rendered":"https:\/\/quanticamedios.com.ar\/?page_id=8250"},"modified":"2026-09-07T23:37:16","modified_gmt":"2026-09-08T02:37:16","slug":"quantica-tv","status":"publish","type":"page","link":"https:\/\/quanticamedios.com.ar\/?page_id=8250","title":{"rendered":"Quantica TV"},"content":{"rendered":"\n<!-- QU\u00c1NTICA MEDIOS - REPRODUCTOR TV EN VIVO -->\n\n<div class=\"quantica-player\">\n\n    <div class=\"quantica-header\">\n        <div class=\"quantica-brand\">\n            <span class=\"quantica-dot\"><\/span>\n            <span>QU\u00c1NTICA TV<\/span>\n        <\/div>\n\n        <div class=\"quantica-live\">\n            <span class=\"live-dot\"><\/span>\n            EN VIVO\n        <\/div>\n    <\/div>\n\n    <div class=\"video-wrapper\">\n\n        <video\n            id=\"quanticaPlayer\"\n            controls\n            playsinline\n            preload=\"metadata\"\n            poster=\"https:\/\/quanticamedios.com.ar\/wp-content\/uploads\/quantica-tv-poster.jpg\">\n        <\/video>\n\n        <div id=\"quanticaLoading\" class=\"quantica-loading\">\n            <div class=\"spinner\"><\/div>\n            <div>Conectando con Qu\u00e1ntica TV&#8230;<\/div>\n        <\/div>\n\n        <div id=\"quanticaError\" class=\"quantica-error\">\n            <div class=\"error-icon\">&#x26a0;<\/div>\n            <strong>Transmisi\u00f3n temporalmente no disponible<\/strong>\n            <span>Intentaremos reconectar autom\u00e1ticamente.<\/span>\n        <\/div>\n\n    <\/div>\n\n    <div class=\"quantica-footer\">\n        <div>\n            <strong>QU\u00c1NTICA TV<\/strong>\n            <span>La televisi\u00f3n de Qu\u00e1ntica Medios<\/span>\n        <\/div>\n\n        <button id=\"quanticaReconnect\" type=\"button\">\n            \u21bb Reconectar\n        <\/button>\n    <\/div>\n\n<\/div>\n\n\n<!-- HLS.JS -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@1.6.16\"><\/script>\n\n\n<style>\n\n.quantica-player {\n    width: 100%;\n    max-width: 1200px;\n    margin: 0 auto;\n    background: #080808;\n    border-radius: 14px;\n    overflow: hidden;\n    box-shadow: 0 12px 40px rgba(0,0,0,.35);\n    font-family: Arial, Helvetica, sans-serif;\n    color: #fff;\n}\n\n\/* HEADER *\/\n\n.quantica-header {\n    height: 54px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 0 20px;\n    background: #101010;\n}\n\n.quantica-brand {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    font-size: 15px;\n    font-weight: 700;\n    letter-spacing: .7px;\n}\n\n.quantica-dot {\n    width: 9px;\n    height: 9px;\n    border-radius: 50%;\n    background: #e00000;\n    box-shadow: 0 0 10px rgba(255,0,0,.8);\n}\n\n.quantica-live {\n    display: flex;\n    align-items: center;\n    gap: 7px;\n    background: #d40000;\n    padding: 6px 11px;\n    border-radius: 5px;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: .5px;\n}\n\n.live-dot {\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: white;\n    animation: quanticaBlink 1.2s infinite;\n}\n\n@keyframes quanticaBlink {\n    0%, 100% { opacity: 1; }\n    50% { opacity: .25; }\n}\n\n\n\/* VIDEO *\/\n\n.video-wrapper {\n    position: relative;\n    width: 100%;\n    aspect-ratio: 16 \/ 9;\n    background: #000;\n}\n\n.video-wrapper video {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    object-fit: contain;\n    background: #000;\n}\n\n\n\/* LOADING *\/\n\n.quantica-loading {\n    position: absolute;\n    inset: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    gap: 15px;\n    background: rgba(0,0,0,.82);\n    font-size: 15px;\n    z-index: 5;\n}\n\n.spinner {\n    width: 38px;\n    height: 38px;\n    border: 3px solid rgba(255,255,255,.2);\n    border-top-color: #fff;\n    border-radius: 50%;\n    animation: quanticaSpin .8s linear infinite;\n}\n\n@keyframes quanticaSpin {\n    to {\n        transform: rotate(360deg);\n    }\n}\n\n\n\/* ERROR *\/\n\n.quantica-error {\n    position: absolute;\n    inset: 0;\n    display: none;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    gap: 8px;\n    background: rgba(0,0,0,.88);\n    z-index: 6;\n    padding: 20px;\n}\n\n.error-icon {\n    font-size: 32px;\n    margin-bottom: 8px;\n}\n\n.quantica-error span {\n    font-size: 13px;\n    opacity: .7;\n}\n\n\n\/* FOOTER *\/\n\n.quantica-footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 13px 18px;\n    background: #101010;\n}\n\n.quantica-footer strong {\n    display: block;\n    font-size: 13px;\n}\n\n.quantica-footer span {\n    display: block;\n    margin-top: 3px;\n    font-size: 11px;\n    opacity: .55;\n}\n\n#quanticaReconnect {\n    border: 0;\n    background: #222;\n    color: white;\n    padding: 8px 13px;\n    border-radius: 6px;\n    cursor: pointer;\n    font-size: 12px;\n}\n\n#quanticaReconnect:hover {\n    background: #333;\n}\n\n\n\/* MOBILE *\/\n\n@media (max-width: 600px) {\n\n    .quantica-header {\n        height: 48px;\n        padding: 0 13px;\n    }\n\n    .quantica-brand {\n        font-size: 12px;\n    }\n\n    .quantica-live {\n        padding: 5px 8px;\n        font-size: 9px;\n    }\n\n    .quantica-footer {\n        padding: 10px 12px;\n    }\n\n    .quantica-footer span {\n        display: none;\n    }\n\n    #quanticaReconnect {\n        font-size: 11px;\n        padding: 7px 10px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n    const video = document.getElementById(\"quanticaPlayer\");\n    const loading = document.getElementById(\"quanticaLoading\");\n    const errorBox = document.getElementById(\"quanticaError\");\n    const reconnect = document.getElementById(\"quanticaReconnect\");\n\n    const streamURL =\n        \"https:\/\/tuvideoonline.com.ar:3485\/live\/quanticatvlive.m3u8\";\n\n    let hls = null;\n    let reconnectTimer = null;\n\n\n    function showLoading() {\n        loading.style.display = \"flex\";\n        errorBox.style.display = \"none\";\n    }\n\n\n    function showError() {\n        loading.style.display = \"none\";\n        errorBox.style.display = \"flex\";\n    }\n\n\n    function hideLoading() {\n        loading.style.display = \"none\";\n        errorBox.style.display = \"none\";\n    }\n\n\n    function startPlayer() {\n\n        clearTimeout(reconnectTimer);\n\n        showLoading();\n\n        \/*\n         * HLS.JS\n         *\/\n\n        if (window.Hls && Hls.isSupported()) {\n\n            if (hls) {\n                hls.destroy();\n                hls = null;\n            }\n\n            hls = new Hls({\n                enableWorker: true,\n\n                liveSyncDurationCount: 3,\n\n                liveMaxLatencyDurationCount: 6,\n\n                maxLiveSyncPlaybackRate: 1.2,\n\n                backBufferLength: 30,\n\n                manifestLoadingTimeOut: 10000,\n\n                manifestLoadingMaxRetry: 4,\n\n                levelLoadingMaxRetry: 4\n            });\n\n\n            hls.loadSource(streamURL);\n\n            hls.attachMedia(video);\n\n\n            hls.on(Hls.Events.MANIFEST_PARSED, function () {\n\n                hideLoading();\n\n                video.play().catch(function () {\n                    \/*\n                     * El navegador puede bloquear autoplay\n                     * con sonido. En ese caso aparecer\u00e1n\n                     * los controles normales.\n                     *\/\n                });\n\n            });\n\n\n            hls.on(Hls.Events.ERROR, function (event, data) {\n\n                console.log(\"Qu\u00e1ntica HLS:\", data);\n\n                if (data.fatal) {\n\n                    switch (data.type) {\n\n                        case Hls.ErrorTypes.NETWORK_ERROR:\n\n                            showError();\n\n                            reconnectTimer = setTimeout(function () {\n                                startPlayer();\n                            }, 5000);\n\n                            break;\n\n\n                        case Hls.ErrorTypes.MEDIA_ERROR:\n\n                            hls.recoverMediaError();\n\n                            break;\n\n\n                        default:\n\n                            showError();\n\n                            if (hls) {\n                                hls.destroy();\n                                hls = null;\n                            }\n\n                            reconnectTimer = setTimeout(function () {\n                                startPlayer();\n                            }, 5000);\n\n                            break;\n                    }\n                }\n\n            });\n\n        }\n\n        \/*\n         * HLS NATIVO\n         * Principalmente Safari \/ iPhone \/ iPad\n         *\/\n\n        else if (\n            video.canPlayType(\"application\/vnd.apple.mpegurl\")\n        ) {\n\n            video.src = streamURL;\n\n            video.addEventListener(\n                \"loadedmetadata\",\n                function () {\n\n                    hideLoading();\n\n                    video.play().catch(function () {});\n\n                },\n                { once: true }\n            );\n\n\n            video.addEventListener(\n                \"error\",\n                function () {\n\n                    showError();\n\n                    reconnectTimer = setTimeout(function () {\n                        startPlayer();\n                    }, 5000);\n\n                },\n                { once: true }\n            );\n\n        }\n\n        else {\n\n            showError();\n\n        }\n\n    }\n\n\n    \/*\n     * BOT\u00d3N RECONEXI\u00d3N\n     *\/\n\n    reconnect.addEventListener(\"click\", function () {\n\n        startPlayer();\n\n    });\n\n\n    \/*\n     * INICIAR\n     *\/\n\n    startPlayer();\n\n\n})();\n\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>QU\u00c1NTICA TV EN VIVO Conectando con Qu\u00e1ntica TV&#8230; &#x26a0; Transmisi\u00f3n temporalmente no disponible Intentaremos reconectar autom\u00e1ticamente. QU\u00c1NTICA TV La televisi\u00f3n de Qu\u00e1ntica Medios \u21bb Reconectar<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","footnotes":""},"class_list":["post-8250","page","type-page","status-publish","hentry"],"jetpack-related-posts":[],"jetpack_shortlink":"https:\/\/wp.me\/Ph7tt2-294","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=\/wp\/v2\/pages\/8250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8250"}],"version-history":[{"count":2,"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=\/wp\/v2\/pages\/8250\/revisions"}],"predecessor-version":[{"id":8255,"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=\/wp\/v2\/pages\/8250\/revisions\/8255"}],"wp:attachment":[{"href":"https:\/\/quanticamedios.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}