Tag: player

  • player video

    home funzionante !

    <div id=”video-container”>
    <figure class=”wp-block-video”>
    <video id=”main-video” data-webm-fallback=”true” controls width=”100%” height=”auto”>
    <source id=”video-source-webm” src=”” type=”video/webm”>
    <source id=”video-source-mp4″ src=”” type=”video/mp4″>
    Il tuo browser non supporta i video HTML5.
    </video>
    </figure>
    <div id=”comment-icon”>🔍</div>
    <div id=”video-title-box”></div>
    <div id=”video-count”>Video 0 di 0</div>
    <button id=”prev-video”>←</button>
    <button id=”next-video”>→</button>

    <div id=”video-info”>
    <p id=”video-author”></p>
    <p id=”video-date”></p>
    </div>

    <ul id=”video-list” style=”display: none;”></ul>
    <button id=”load-more-videos” style=”display: none;”>Carica altri video</button>
    </div>

    <!– Il toggle è ora fuori dal video-container –>
    <button id=”toggle-video-list”>↘︎</button>

    <script>
    document.addEventListener(“DOMContentLoaded”, function () {
    const videoPlayer = document.getElementById(“main-video”);

    // Funzione per passare al video successivo su mobile
    function handleTapToNext(event) {
    if (window.innerWidth <= 768) { // Solo su mobile
    event.preventDefault();
    document.getElementById(“next-video”).click();
    }
    }

    videoPlayer.addEventListener(“touchend”, handleTapToNext);
    });
    document.addEventListener(“DOMContentLoaded”, function () {
    document.addEventListener(“keydown”, function (event) {
    if (document.activeElement.tagName !== “INPUT” && document.activeElement.tagName !== “TEXTAREA”) {
    if (event.key === “ArrowRight”) {
    document.getElementById(“next-video”).click();
    } else if (event.key === “ArrowLeft”) {
    document.getElementById(“prev-video”).click();
    }
    }
    });
    });

    document.addEventListener(“DOMContentLoaded”, function () {
    const videoPlayer = document.getElementById(“main-video”);
    const videoList = document.getElementById(“video-list”);
    const videoCount = document.getElementById(“video-count”);
    const commentIcon = document.getElementById(“comment-icon”);
    const toggleButton = document.getElementById(“toggle-video-list”);
    const prevButton = document.getElementById(“prev-video”);
    const nextButton = document.getElementById(“next-video”);
    const loadMoreButton = document.getElementById(“load-more-videos”);

    const videoAuthor = document.getElementById(“video-author”);
    const videoDate = document.getElementById(“video-date”);

    let videoQueue = [];
    let currentIndex = 0;
    let currentPage = 1;
    const videosPerPage = 35;
    let isSecondTranceLoaded = false;

    toggleButton.addEventListener(“click”, function () {
    videoList.style.display = videoList.style.display === “none” ? “block” : “none”;
    toggleButton.textContent = videoList.style.display === “none” ? “↘︎” : “↖︎”;
    });

    prevButton.addEventListener(“click”, function () {
    if (currentIndex > 0) {
    playVideo(currentIndex – 1);
    }
    });

    nextButton.addEventListener(“click”, function () {
    if (currentIndex + 1 < videoQueue.length) {
    playVideo(currentIndex + 1);
    }
    });

    loadMoreButton.addEventListener(“click”, function () {
    currentPage++;
    fetchVideos();
    });

    async function fetchVideos() {
    try {
    const response = await fetch(`/wp-json/wp/v2/posts?per_page=${videosPerPage}&page=${currentPage}&_embed&context=view&order=asc`);
    const posts = await response.json();

    if (!Array.isArray(posts) || posts.length === 0) {
    loadMoreButton.style.display = “none”;
    return;
    }

    const newVideos = posts.map(post => {
    const videoUrl = extractVideoUrl(post.content.rendered);
    const thumbnailUrl = extractThumbnailUrl(post);

    return videoUrl ? {
    url: videoUrl,
    title: post.title.rendered,
    author: post._embedded?.author?.[0]?.name || “Sconosciuto”,
    date: post.date,
    excerpt: post.excerpt.rendered,
    articleUrl: post.link,
    thumbnailUrl: thumbnailUrl
    } : null;
    }).filter(Boolean);

    if (newVideos.length > 0) {
    videoQueue = […newVideos, …videoQueue];
    videoQueue.sort(() => Math.random() – 0.5);

    updateVideoList();
    updateVideoCount();
    loadMoreButton.style.display = “block”;

    if (!isSecondTranceLoaded && currentPage > 1) {
    // Simula il click su “avanti” dopo aver caricato la seconda trance
    setTimeout(() => {
    nextButton.click();
    }, 500); // Ritardo per far sì che i video vengano caricati prima del click
    isSecondTranceLoaded = true; // Segna che la seconda trance è stata caricata
    }

    if (currentPage === 1 && videoQueue.length > 0) {
    playVideo(0, false);
    }
    } else {
    loadMoreButton.style.display = “none”;
    }
    } catch (error) {
    console.error(“Errore nel recupero dei video:”, error);
    }
    }

    function extractVideoUrl(content) {
    const videoRegex = /https?://[^s]+(?:.mp4|.mp4)/gi;
    const match = content.match(videoRegex);
    return match ? match[0] : null;
    }

    function extractThumbnailUrl(post) {
    return post._embedded?.[‘wp:featuredmedia’]?.[0]?.source_url || ‘https://www.publicmusic.it/wp-content/uploads/2024/08/358971.jpeg’;
    }

    function playVideo(index, autoplay = true) {
    if (index >= 0 && index < videoQueue.length) {
    currentIndex = index;
    const video = videoQueue[index];

    document.getElementById(“video-title-box”).innerHTML = video.title || “Senza titolo”;
    videoAuthor.textContent = `Autore: ${video.author}`;
    videoDate.textContent = `Data: ${new Date(video.date).toLocaleDateString()}`;

    document.getElementById(“video-source-mp4”).src = video.url.replace(“.mp4”, “.mp4”);
    document.getElementById(“video-source-webm”).src = video.url;
    videoPlayer.load();

    commentIcon.onclick = () => window.open(video.articleUrl, “_blank”);

    if (autoplay) {
    videoPlayer.play().catch(() => console.warn(“Autoplay bloccato, attesa interazione utente.”));
    }

    updateVideoList();
    updateVideoCount();
    videoList.style.display = “none”;
    toggleButton.textContent = “↘︎”;
    }
    }

    function updateVideoList() {
    videoList.innerHTML = “”;
    videoQueue.forEach((video, index) => {
    const listItem = document.createElement(“li”);
    listItem.innerHTML = `
    <div class=”video-item-content”>
    <img src=”${video.thumbnailUrl}” alt=”Thumbnail” class=”video-thumbnail”>
    <div>
    <a href=”#” data-index=”${index}”>${video.title || “Senza titolo”}</a><br>
    <em>Autore: ${video.author}</em><br>
    <em>Data: ${new Date(video.date).toLocaleDateString()}</em><br>

    </div>
    </div>
    `;
    listItem.addEventListener(“click”, () => playVideo(index));
    videoList.appendChild(listItem);
    });

    if (!videoList.contains(loadMoreButton)) {
    videoList.appendChild(loadMoreButton);
    }
    }

    function updateVideoCount() {
    videoCount.textContent = `Video ${currentIndex + 1} di ${videoQueue.length}`;
    }

    videoPlayer.onended = function () {
    if (currentIndex + 1 < videoQueue.length) {
    playVideo(currentIndex + 1);
    } else {
    currentPage++;
    fetchVideos();
    }
    };

    fetchVideos();
    });

     

    </script>

  • Il mio Player

    Che a sun cuntent !
Anni: 2023 | 2024 | 2025
Aprile 2025
L M M G V S D
 123456
78910111213
14151617181920
21222324252627
282930