Titre dans la Barre d'état Navigateur

Plus anciens d’abord Plus récents d’abord

2 messages · 869 vues · ouvert

Ce sujet faisait partie des archives de l’ancien forum. Son premier et son dernier message ont été repris ; les réponses intermédiaires n’ont pas pu être récupérées.

kikooroomMembres
·1 messages

Bonjour a tous Bon Dimanche

 

Voilà je suis occupé à créer un lecteur web et je cherche à afficher le titre ShoutCast dans la Barre de Titre de l'angle du Navigateur j'ai fait quelques recherches mais sans succès pour une api php ou script html javascript 

 

Merci à vous pour votre aide 

254154.PNG

Vous avez quelque chose à dire ?

Connectez-vous ou créez un compte pour répondre, en texte ou en message vocal.

·52 messages

De mémoire :

  1. Commence par avoir un script PHP qui récupère les infos de Shoutcast :
    <?php
    
    $data = file_get_contents('http://mon-flux-audio-shoutcast:8000/7'); // <-- Ici, le /7 permet d'accéder aux tags.
    list($listeners, $status, $peak_listeners, $maximum_listeners, $unique_listeners, $bitrate, $track) = explode(',', $data, 7); // <-- Là, on "parse" la chaîne renvoyée par Shoutcast qui est de la forme : "truc,machin,bidule,etc.". Il y a, en tout, 7 éléments, et le dernier correspond aux tags.
    echo $track;

     

  2. Côté javascript, tu peux faire ça très simplement :
     

    // Les commentaires indiquent l'ordre d'appel…
    
    function getTags(callback) {
    	var request = new XMLHttpRequest(); // Étape 3 : on prépare la requête AJAX
    	request.onreadystatechange = function(event) {
            if (this.readyState === XMLHttpRequest.DONE) {
                if (this.status === 200) {
                    callback(this.responseText); // Étape 6 : quand le résultat de la requête a été reçu, on retourne à la fonction qui rafraîchit les tags (d'où l'utilisation d'un callback).
                }
            }
        };
    	request.open('GET', 'http://chemin/vers/mon/script.php', false); // Étape 4 : on indique quelle URL appeler
    	request.send(null); // Étape 5 : on envoie la requête au serveur.
    }
    
    function refreshTags(nextTick) {
        getTags(function(tags) { // Étape 2 : on va chercher les tags
            document.title = tags; // Étape 7 : on met le titre de la fenêtre à jour
            [].forEach.call(document.querySelectorAll('.js-tags'), function($element) { // Étape 8 (bonus) : on met tous les éléments de la page qui portent la classe "js-tags" à jour.
                $element.innerText = tags;
            });
            window.setTimeout(function() { // Étape 9 : on programme un nouvel appel dans 15 secondes (grâce au paramètre envoyé à l'étape 1).
                refreshTags(nextTick); // <-- Attention ici à bien renvoyer les 15 secondes, sinon, dès le deuxième appel, il va appeler le serveur en boucle à quelques millisecondes d'intervalles à chaque tour :)
            }, nextTick);
        });
    }
    
    refreshTags(15 * 1000); // Étape 1 : on appelle la fonction de rafraîchissement en indiquant que le prochain appel aura lieu dans 15 secondes.

     

Je n'ai pas testé les codes… Je te laisse me faire un retour (de préférence ici pour que tout le monde en profite :))

Vous avez tout lu.2 messages affichés sur 2