Partage
  • Partager sur Facebook
  • Partager sur Twitter

Personnaliser mon lecteur (utilisant SoundManager)

Établir des stats & cacher l'adresse des morceaux joués

    3 mars 2010 à 19:39:30

    Bonjour/bonsoir à tou(te)s :)

    Étant actuellement en train de mettre (difficilement :D ) en place le site web de mon groupe de musique, j'ai cherché à intégrer un lecteur mp3. Et, oh miracle, Golmote nous a préparé ici même sur le SdZ un tuto utilisant SoundManager. Parfait ... j'ai donc utilisé son tutoriel et adapté son lecteur. Dans la mesure du possible, car je n'ai quasiment aucune connaissance du JavaScript !
    Le lecteur que j'ai actuellement me convient donc, à deux points près :

    Premièrement, j'aimerais avoir différents compteurs, sur une page séparée (pour avoir des stats perso, en somme) : compteur de lectures (donc de chargements, finalement) et si possible compteur de lectures complètes (donc de lectures de la fin des fichiers). Ça me semble possible avec les événements de SoundManager : onload, onfinish etc.
    Mais quelle serait la solution "idéale" pour mettre cela en place ? Est-ce possible en PHP (on peut imaginer qu'à chaque fois que l'événement se produit, on prend la valeur dans une BDD qu'on incrémente et qu'on réécrit) ? Si oui, comment le PHP s'intègre-t-il au code de mon player en JS ? Et si le PHP n'est pas adapté/recommandé, comment faire en JS ? Là j'avoue qu'il me faudrait un peu d'aide ^^

    Deuxièmement, le soucis avec le lecteur proposé dans le tuto, est que les liens de la playlist, qui sont dans des balises a classiques, s'affichent dans la barre d'état du navigateur, on peut donc récupérer facilement les morceaux (on peut même les enregistrer d'un clic droit). Ce que j'aimerais, c'est non pas cacher à tout prix leur localisation (je ne pense pas que ce soit possible), mais empêcher aux utilisateurs lambda d'y accéder facilement. J'ai cru comprendre qu'on pouvait passer par un fichier XML, mais dans ce cas-là l'utilisateur ne pourrait plus avoir de contrôles sur la lecture ... si ? Et sinon ... et bien, une idée ? ^^

    Merci d'avance,
    Bonne soirée :)
    SveDec
    • Partager sur Facebook
    • Partager sur Twitter
      3 mars 2010 à 19:53:33

      Bonsoir à toi.

      Alors alors. Pour ton premièrement, je pense en effet que les événements de SM2 peuvent te permettre de tenir ce genre de stats (même si elle pourront toujours être faussés un peu, je pense... (possibilité de tricher en déclenchant les événements... m'enfin.)).

      Le plus simple, selon moi, ça va être d'utiliser Ajax pour envoyer tes données (lors des dits événements) à une page PHP, qui se chargera de bidouiller la BDD.

      Y'a un tuto sur Ajax qui devrait t'aider. ;)


      Ensuite, pour ton deuxièmement, le XML ne pourra en effet pas être utilisé directement avec loadFromXML() car, comme le dit la doc (le site de SM2 est moitié mort ce soir, mais la doc est intact dans le zip téléchargeable :p ) :

      Citation : Documentation de SM2

      Note that per-sound options are not supported with this method



      Donc pas possible de contrôler les sons chargés.

      Bref la solution serait donc de parser toi-même le fichier XML. (Ajax encore ^^ )
      En gros tu crées une fonction qui récupère le fichier via Ajax, le parcourt, récupères les urls (et éventuellement d'autres données), et peut alors procéder à la création des sons.


      Ce que tu cherches à faire n'est pas forcément évident. Je te souhaite bon courage et bonne continuation :) J'espère que tu mèneras tout ça à bien. ;)
      • Partager sur Facebook
      • Partager sur Twitter
        5 mars 2010 à 17:59:00

        Salut !
        Merci pour ta réponse :)
        Mmh ... tout ça me paraît bien compliqué, vu que je n'ai pas une seule notion d'Ajax ^^
        Je vais me farcir le tuto, on verra après quand ce sera plus clair ... je pense qu'un coup de main sera nécessaire (j'aime bien le "Ce que tu cherches à faire n'est pas forcément évident." !), mais bon, on verra ^^
        Je noterai le sujet comme résolu quand j'aurai un code qui fonctionnera, même si cette piste semble prometteuse ;)
        Merci encore,
        A+
        • Partager sur Facebook
        • Partager sur Twitter
          8 mars 2010 à 18:01:36

          Hello,
          Bon, comme prévu je galère un peu :D
          Je me suis pas encore occupé de l'envoi de variables lors des événements, pour créer des statistiques ... ça m'a l'air moins difficile, alors je me la laisse pour plus tard ^^
          Je suis donc actuellement sur le deuxième problème ...
          Bon, j'imagine qu'il faut utiliser une fonction faisant appel à l'objet XMLHttpRequest ?
          J'ai vraiment du mal à déterminer comment utiliser tous ces trucs-là et où ... c'est que je parle pas le JS, moi !
          J'aurais tendance à dire qu'il faut récupérer le contenu du XML avec cette fonction dans le player.js directement, qui crée alors les sons ... mais du coup je vois pas trop comment les contrôler depuis player.htm o_O
          Un petit coup de main ne serait pas de refus ^^
          Tu pourrais même compléter ton tutoriel ! Je pense (c'est peut-être un peu présomptueux) que pas mal de gens intégrant un lecteur sur leur site ne souhaitent pas voir les URLs de leurs morceaux exposées à tous ;)
          Même si effectivement ça complique la tâche :o
          Merci beaucoup d'avance, et désolé pour le temps perdu passé à me répondre :euh:
          SveDec
          • Partager sur Facebook
          • Partager sur Twitter
            8 mars 2010 à 18:23:27

            Citation : SveDec

            désolé pour le temps perdu passé à me répondre :euh:



            Si ça t'aide, ce n'est pas du temps de perdu. :)


            Alors, déjà il te faut un beau fichier XML valide.

            Ensuite, dans player.js, tu appelleras une petite fonction qui effectuera un appel Ajax de ton fichier XML. Là, il faut en effet utiliser l'objet XMLHttpRequest.
            Le tuto que j'ai mis en lien précédemment doit normalement te permettre de faire cet appel.

            Tu utiliseras normalement une fonction de callback pour traiter les données reçues. Par contre, il faudra passer en paramètre à la fonction xhr.responseXML et non pas xhr.responseText .

            Bref, dans ta fonction de callback, tu disposeras alors d'un paramètre représentant ton fichier XML.
            Si tout s'est bien passé, tu devrais pouvoir parcourir ce fichier avec getElementsByTagName() et ainsi en extraire les données pour pouvoir ensuite créer tes sons. :)


            (Dans l'hypothèse où le xhr.responseXML serait vide (j'ai jamais trop compris pourquoi mais y'a des fois où ça marche pô...), tu peux utiliser le xhr.responseText et le parser avec un objet DOMParser . Je te laisse faire des recherches pour avoir les détails.)

            (Moi je veux bien essayer de t'aider, mais tant que tu n'as aucun code à montrer, je ne peux que rester dans le vague... :euh: )
            • Partager sur Facebook
            • Partager sur Twitter

            Personnaliser mon lecteur (utilisant SoundManager)

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown