Player Flash Mp3 léger

Intégrez un lecteur mp3 en flash et léger comme une plume au sein de vos articles, brèves ...

Je vous invite dès à présent, à aller consulter le site de estvideo pour comprendre ce que vous allez obtenir.

INSTALLATION

-  Téléchargez tout d’abord le fichier dewplayer.swf disponible sur estvideo ou la version disponible au bas de cette page.


Poids du fichier Flash : 2.13 Ko
Licence libre : Creative Commons Attribution-ShareAlike License France.

-  Dans votre fichier /config/mes_options.php, ajoutez le code suivant :

function flashmp3($texte) {
$texte = preg_replace("'<flashmp3=([^\]>]+)>([^\[]+)<\/flashmp3>'Ui",'<br><br><object type="application/x-shockwave-flash" data="/son/dewplayer.swf?son=/son/\\1" width="200" height="20"><param name="movie" value="/son/dewplayer.swf?son=/son/\\1"></object><span valign="middle"><br>\\2</span>',$texte);
return $texte;
}
;

function apres_propre($texte) {
$texte = flashmp3($texte);
return $texte;
}
;

-  Dans vos squelettes brèves, articles ..., ajoutez le filtre |flashmp3 comme ci dessous

<div class="texte">[(#TEXTE|flashmp3)]</div>

-  Créez également un dossier « son » à la racine de votre spip où vous placerez vos fichiers mp3 et le fichier dewplayer.swf précédemment téléchargé.

UTILISATION

Lors de la rédaction de vos articles, il suffira de placer les balises suivantes

<flashmp3=nomdefichier.mp3>Écoutez ce morceau, fruit de mes délires musicaux</flashmp3>

dans votre texte.

FICHIER A TELECHARGER

dewplayer.swf
Version prise sur estvideo, le 12.05.2005

ATTENTION
Nous faisons ici l’usage des points d’entrées spip disponibles depuis la 1.7.2. Si la fonction apres_propre existe déjà dans votre fichier mes_options, alors il faut juste ajouter la ligne $texte = flashmp3($texte); juste avant la ligne contenant un return en adaptant $texte pour qu’il ait le même nom que ce qui se trouve après le return.

Discussion

28 discussions

  • ma technique pour l’intégrer est autre :

    dans une boucle document de mon squelette, j’intègre le code de dewplayer.

    au niveau de l’url, je fais une boucle document, avec le filtre extension=mp3, et j’indique #URL_DOCUMENT comme URL

    ca fonctionne parfaitement, et pas besoin d’aller sur le site via FTP.

    l’exemple ici

    Répondre à ce message

  • 3
    Katsuhito

    C’est pas mal, effectivement, mais c’est dommage qu’il n’y ait pas de fonction « playlist ». Personnellement, j’ai une rubrique dans laquelle je publie des articles qui contiennent des morceaux mp3, et je voulais pouvoir les lire aléatoirement sur ma page d’accueil. Je me suis servi d’un autre lecteur flash, plus rudimentaire, mais qui a l’avantage de gérer les playlists à partir d’un fichier xml (le lecteur se trouve ici).

    J’ai juste eu besoin de créer deux fichiers et de modifier une ligne dans le code actionscript du fichier SWF :

    -  playlist.html pour générer le code xml

    <?php
    	@header('Content-type: text/xml[; charset=(#CHARSET)]');
    	echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n";
    ?>
    <BOUCLE_fm(RUBRIQUES){id_rubrique=74}><audioFiles>
    <BOUCLE_fma(ARTICLES){id_rubrique}{par hasard}>
    <BOUCLE_fmd(DOCUMENTS){extension=mp3}{id_article}{par hasard}>
    <AudioProps path="#URL_SITE_SPIP/#URL_DOCUMENT" songTitle="#TITRE</BOUCLE_fmd> (#TITRE)" />
    </BOUCLE_fma>
    </audioFiles>
    </BOUCLE_fm>

    -  playlist.php3, un fichier classique pour SPIP

    <?php
    $fond = "playlist";
    $delais = 3600;
    // cette ligne empeche l'affichage des boutons d'administration
    $flag_preserver = true;
    include ("inc-public.php3");
    ?>

    -  playa.swf : éditer le .fla, remplacer le code suivant à la fin du fichier, puis exporter en .swf

        if (playlist == null) {
            playlist = "playlist.xml";
        }

    par

        if (playlist == null) {
            playlist = "playlist.php3?var_mode=recalcul";
        }

    Pour le reste, il suffit d’inclure l’objet flash dans votre page comme c’est indiqué dans le package original du lecteur flash.

    En espérant que ça puisse servir à quelqu’un...

    • Franchement superbe. ça vaudrait le coup que tu fasses aussi une contrib’, histoire que les spipeurs apprécient la diversité

    • Je ne sais pas si ça en vaut vraiment la peine, ce n’est pas une contrib, mais plutôt une bidouille (je suis pas expert), et en plus, je viens de réfléchir et je me suis rendu compte que mes boucles pour générer le xml étaient bancales. Ca marche pour l’instant, mais en considérant qu’il y ait plus d’un fichier par article, ça ne fonctionnera plus. Cela vient du fait que je voulais faire en sorte de ne pas avoir à saisir le titre de l’album, qui dans mon cas est déjà le nom de l’article qui contient le fichier...

      <?php
              @header('Content-type: text/xml[; charset=(#CHARSET)]');
              echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n";
      ?>
      <BOUCLE_fm(RUBRIQUES){id_rubrique=74}><audioFiles>
      <BOUCLE_fma(ARTICLES){id_rubrique}{par hasard}>
      <BOUCLE_fmd(DOCUMENTS){extension=mp3}{id_article}{par hasard}>
      <AudioProps path="#URL_SITE_SPIP/#URL_DOCUMENT" songTitle="#TITRE" />
      </BOUCLE_fmd>
      </BOUCLE_fma>
      </audioFiles>
      </BOUCLE_fm>

      Voilà des boucles qui fonctionneront dans tous les cas, mais seul le nom du fichier sera affiché.. Si quelqu’un a une idée... Je n’avais pas pris la peine d’expliquer mes boucles car elles sont très simples. Il faut juste comprendre que les fichiers mp3 que je mets dans la playlist sont contenus dans des articles, eux-mêmes contenus dans une rubrique (74). J’effectue un tri par hasard pour avoir quelque chose d’aléatoire (et vu que le lecteur flash fait appel à cette liste avec l’url playlist.php3 ?var_mode=recalcul, je suis sûr que le tri sera opéré à chaque fois).

      Sinon, je compte travailler sur un hybrid entre ce player et le dewplayer proposé dans cette rubrique. Le but du jet est d’essayer de garder la simplicité du dewplayer (interface entièrement en flash) et d’y mêler la fonction playlist à partir d’un fichier xml généré par spip. Je vous tiendrai au courant lorsque ce sera fonctionnel.

    • Suite à une mise à jour interrompue et à un manque cruel de temps, l’exemple cité ci-dessus n’est plus tout à fait fonctionnel. Désolé pour le désagrément.

    Répondre à ce message

  • 1

    Bonjour

    Avant tout merci pour votre contribution.

    Je suis débutant, et je rame un peu.
    J’ai créé mon fichier mes_options.php3 que j’ai mis en place mais pas sous ’ecrire’ mais à la racine sinon je n’accède plus à ma partie admin, est ce normal ?

    Ensuite quand vous dites ’ajouter au squelette la ligne suivante’, de quelle fichiers précisement parlez vous et où se trouvent ils ?

    Merci d’avance

    Phil

    Répondre à ce message

  • merci à vous amis de spip.
    j’utilise la version modifier
    http://www.spip-contrib.net/spikini/VarianteContribPlayer-Flash-Mp3-leger

    et c’est de la bombe. ça marche super bien, mise en place hyper facile.... mille merci !!

    voila le resultat : http://www.dialoguessurlepouce.org/fables.php3?id_rubrique=2

    site que j’ai réalisé avec spip
    n’hesitez pas a envoyer vos commentaires...

    freaks

    Répondre à ce message

  • 2

    bonjour,
    jai cree un site a partir de spip ( www.odio.zik.mu )
    j’utilisais ce petit player qui est un bijou et tout marchait tres bien
    puis pour ameliorer la mise en page demes news jai voulu mettre un wysiwyg et jai opté pour fckeditor
    malheureusement maintenant quand je mets ma ligne de code du type
    Écoutez ce morceau, fruit de mes délires musicaux
    dans mon article fckeditor ne le gere pas comme tu code et me l’ecrit tel quel dans mon article

    que faire ?

    • Peut-être pourrais tu utiliser la variante proposé par Dorian
      http://www.spip-contrib.net/spikini/VarianteContribPlayer-Flash-Mp3-leger

      Ainsi, tu n’as plus rien à mettre dans le texte de on article. Il te suffit d’attacher ton mp3 en tant que document et de placer le code vu sur le spikini dans ton squelette. (De bons goûts musicaux d’ailleurs, que j’ai vu sur odio.zik.mu, mais le site bug un peu partout (image qui ne s’affiche pas) )

    • Merci beaucoup jai pu grace a toi remedier a mon probleme.
      Jai plutot pris la solution un peu plus logue decrite plus bas par je sais plus qui car je suis sous spip 1.8.1 mais ce la reviens au meme, je vais pou_voi reinstaller un WYSIWYG sans avoir à renoncer a ce petit bijou de player !
      sinon la plupart des bugs sont corriges et le site s’enrichie petit a petit donc je t’invite à repasser le voir.
      Merci encore !

    Répondre à ce message

  • 2

    http://www.spip-contrib.net/spikini/VarianteContribPlayer-Flash-Mp3-leger

    Merci à Dorian pour cette variante que je testerais très prochainement.

    Répondre à ce message

  • 3

    Contibution bien compliqué. Pourquoi faire compliqué ? utiliser la solution de Dorian en l’entourant d’une boucle test avec un mot clé « podcast » par ex. le dewplayer n’est pas le player flash qui se fait de mieux vous en trouverez d’autres avec des playlists et mieux encore faites un fichier podcast et utilisez un player qui lit le fichier RSS2 podcast.

    Répondre à ce message

  • 1

    Il est possible d’utiliser dewplayer directement dans son fichier backend RSS. Voici un fichier backend modifié pour afficher par mot-clé et par rubrique, voir http://survivreausida.net/a5721 pour plus d’infos.

    Démo : http://www.survivreausida.net/rss.xml

    <?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.">\n"; ?>
    <rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
    	<title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    	<link>#URL_SITE_SPIP/</link>
    	<description></description>
    	<language>#LANG</language>
    
    	<image>
    		<title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    		<url>#URL_SITE_SPIP[/(#LOGO_SITE_SPIP||extraire_attribut{src})]</url>
    		<link>#URL_SITE_SPIP/</link>
    		<description></description>
    	</image>
    <!-- d'abord les articles specifiques a un mot-cle - syntaxe backend.php3?id_mot=123 -->
    <B_mots_only>
    <BOUCLE_mots_only(MOTS){id_mot}>
    	<BOUCLE_par_mot(ARTICLES){id_mot}{par date}{inverse}{0,20}>
    		<item>
    		<title>[(#TITRE|supprimer_numero|texte_backend)]</title>
    		<link>#URL_SITE_SPIP/#URL_ARTICLE</link>
    		<date>#DATE</date>
    		<description>[&lt;img src="#URL_SITE_SPIP/(#LOGO_ARTICLE||extraire_attribut{src})" align="left" hspace="4" vspace="4"&gt; ]<![CDATA[
    			        <BOUCLE_podcast_mini3(DOCUMENTS){id_article}{mode=document}{extension==mp3}>[			
    			<a href="(#URL_DOCUMENT|url_absolue)"><img src="http://www.votresite.com/icone_podcast.jpg" border="0" height="29" width="78" alt="Podcast" align="right" hspace="5" vspace="2" /></a>]
    			<object type="application/x-shockwave-flash" data="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" width="200" height="20"><param name="movie" value="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" /></object>
    			</BOUCLE_podcast_mini3>]]>
    			[(#INTRODUCTION|liens_absolus|texte_backend)]</description> 
    		<author><BOUCLE_mots_source91(MOTS){id_article}{par titre}{", "}{id_groupe==^(7|8)$}>[(#TITRE|supprimer_numero|texte_backend)]</BOUCLE_mots_source91></author>
    		<dc:date>[(#DATE|date_iso)]</dc:date>
    		<dc:format>text/html</dc:format>
    		<dc:language>#LANG</dc:language>
    		<dc:creator><BOUCLE_aut91b(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_aut91b></dc:creator>
    		</item>
    	</BOUCLE_par_mot>
    </BOUCLE_mots_only>
    </B_mots_only>
    <!-- rubrique -->
    <BOUCLE_rub(RUBRIQUES){id_rubrique}>
    	<BOUCLE1(ARTICLES){branche}{par date}{inverse}{0,20}>
    		<item>
    		<title>[(#TITRE|supprimer_numero|texte_backend)]</title>
    		<link>#URL_SITE_SPIP/#URL_ARTICLE</link>
    		<date>#DATE</date>
    		<description>[&lt;img src="#URL_SITE_SPIP/(#LOGO_ARTICLE||extraire_attribut{src})" align="left" hspace="4" vspace="4"&gt; ]<![CDATA[
    		    <BOUCLE_podcast_mini2(DOCUMENTS){id_article}{mode=document}{extension==mp3}>[			
    			<a href="(#URL_DOCUMENT|url_absolue)"><img src="http://www.votresite.com/icone_podcast.jpg" border="0" height="29" width="78" alt="Podcast" align="right" hspace="5" vspace="2" /></a>]
    			<object type="application/x-shockwave-flash" data="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" width="200" height="20"><param name="movie" value="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" /></object>
    			</BOUCLE_podcast_mini2>]]>
    			[(#INTRODUCTION|liens_absolus|texte_backend)]</description> 
    		<author><BOUCLE_mots_source1(MOTS){id_article}{par titre}{", "}{id_groupe==^(7|8)$}>[(#TITRE|supprimer_numero|texte_backend)]</BOUCLE_mots_source1></author>
    		<dc:date>[(#DATE|date_iso)]</dc:date>
    		<dc:format>text/html</dc:format>
    		<dc:language>#LANG</dc:language>
    		<dc:creator><BOUCLE_aut1b(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_aut1b></dc:creator>
    		</item>
    	</BOUCLE1>
    </BOUCLE_rub>
    <!-- ni rubrique ni mot cle -->
    	<BOUCLE2(ARTICLES){id_secteur=2}{par date}{inverse}{0,20}{unique}>
    	    <item>
    		<title>[(#TITRE|supprimer_numero|texte_backend)]</title>
    		<link>#URL_SITE_SPIP/#URL_ARTICLE</link>
    		<date>#DATE</date>
    		<description>[&lt;img src="#URL_SITE_SPIP/(#LOGO_ARTICLE||extraire_attribut{src})" align="left" hspace="4" vspace="4"&gt; ]<![CDATA[
    			        <BOUCLE_podcast_mini0(DOCUMENTS){id_article}{mode=document}{extension==mp3}>[			
    			<a href="(#URL_DOCUMENT|url_absolue)"><img src="http://www.votresite.com/icone_podcast.jpg" border="0" height="29" width="78" alt="Podcast" align="right" hspace="5" vspace="2" /></a>]
    			<object type="application/x-shockwave-flash" data="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" width="200" height="20"><param name="movie" value="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" /></object>
    			</BOUCLE_podcast_mini0>]]>
    			[(#INTRODUCTION|liens_absolus|texte_backend)]</description> 
    		<author><BOUCLE_mots_source2(MOTS){id_article}{par titre}{", "}{id_groupe==^(7|8)$}>[(#TITRE|supprimer_numero|texte_backend)]</BOUCLE_mots_source2></author>
    		<dc:date>[(#DATE|date_iso)]</dc:date>
    		<dc:format>text/html</dc:format>
    		<dc:language>#LANG</dc:language>
    		<dc:creator><BOUCLE_aut2b(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_aut2b></dc:creator>
    	    </item>
    	</BOUCLE2>
    	<BOUCLE3(ARTICLES){id_secteur=2}{par date}{inverse}{age<30}{unique}>
    	    <item>
    		<title>[(#TITRE|supprimer_numero|texte_backend)]</title>
    		<link>#URL_SITE_SPIP/#URL_ARTICLE</link>
    		<date>#DATE</date>
    		<description>[&lt;img src="#URL_SITE_SPIP/(#LOGO_ARTICLE||extraire_attribut{src})" align="left" hspace="4" vspace="4"&gt; ]<![CDATA[
    			        <BOUCLE_podcast_mini1(DOCUMENTS){id_article}{mode=document}{extension==mp3}>[			
    			<a href="(#URL_DOCUMENT|url_absolue)"><img src="http://www.votresite.com/icone_podcast.jpg" border="0" height="29" width="78" alt="Podcast" align="right" hspace="5" vspace="2" /></a>]
    			<object type="application/x-shockwave-flash" data="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" width="200" height="20"><param name="movie" value="http://www.votresite.com/dewplayer.swf?son=[(#URL_DOCUMENT|url_absolue)]" /></object>
    			</BOUCLE_podcast_mini1>]]>
    			[(#INTRODUCTION|liens_absolus|texte_backend)]</description> 
    		<author><BOUCLE_mots_source3(MOTS){id_article}{par titre}{", "}{id_groupe==^(7|8)$}>[(#TITRE|supprimer_numero|texte_backend)]</BOUCLE_mots_source3></author>
    		<dc:date>[(#DATE|date_iso)]</dc:date>
    		<dc:format>text/html</dc:format>
    		<dc:language>#LANG</dc:language>
    		<dc:creator><BOUCLE_aut3b(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_aut3b></dc:creator>
    	    </item>
    	</BOUCLE3>
    <//B_rub>
    <//B_mots_only>
    </channel>
    </rss>

    Répondre à ce message

  • 1

    Bonjour

    Peut on imaginer avec cette contribution un truc du genre :

    -  une radio blog qui irait piocher de manière aléatoire un des nombreux articles contenu dans une rubrique et qui serait uniquement un fichier mp3 .
    Bien sûr, il y aurait une lecture aléatoire par le biais d’une boucle hasard et a la fin de la lecture du fichier mp3 un « repiochage » vers un nouveau fichier pour une lecture de celui-ci.

    • Tout est imaginable.

      Avec la variante proposée par Dorian, on voit bien qu’on peut tout à fait aller chercher les mp3 dans des documents. Et on sait aussi que spip permet un critère par hasard au sein des boucles documents qui vont bien.

      Maintenant, reste à voir comment ton script de radio blog (lequel ?) gère sa playlist.

      Il est clair que ça peut en intéresser plus d’un, et j’estime que ça pourrait faire l’objet d’une contrib propre. Là, on a un player intégré à un article, et léger. Les radios blogs que je croisent sont souvent présentes dans toutes les pages d’un site, et possèdent plusieurs titres.

      Y’a plus qu’à. J’y jetterais peut-être un oeil, selon l’humeur.

    Répondre à ce message

  • 1
    MageGaHell

    Trés bon, ce petit flash !
    Mais j’ai pensé aux rédacteurs qui ne s’y connaissent pas forcémment en SPIP. Je voulais leur éviter de mettre les balises dans le texte.
    Bon, je ne suis qu’un humble débutant sous SPIP (stagiaire en plus) mais j’ai trouvé une solution : le fichier joint !
    Oui, François y avait pensé aussi...Mais il fallait quand même mettre les balises dans le texte de l’article. Double-emplois alors qu’on upload le fichier, non ?
    J’ai donc fait ceci (testé sous SPIP 1.8) dans le squelette :

    <BOUCLE_article_mp3(ARTICLES){id_article}>
    <div align="center">[(#TITRE)]</div>
    <div class="texte">[(#TEXTE|justifier)]</div>
    
    <BOUCLE_play(DOCUMENTS){mode=document}{extension==mp3}{doublons}{id_article}>
    <?php 
    $adresse = '[(#URL_DOCUMENT|texte_script)]';
    list($onsenfout, $nom) = split("IMG/mp3/",$adresse);
    ?>
    Ecouter [(#TITRE)]:<i>(<? echo $nom ?>)</i>
    <br><br><object type="application/x-shockwave-flash" data="dewplayer.swf?son=#URL_DOCUMENT" width="200" height="20">
    <param name="movie" value="dewplayer.swf?son=#URL_DOCUMENT"></object><span valign="middle">
    </BOUCLE_play>
    
    </BOUCLE_article_mp3>

    La boucle DOCUMENTS va chercher comme une grande les mp3 à jouer. Chacuns d’eux aura sa jolie barre en flash, son titre éventuel et son nomfichier.mp3 afficher grâce à une petite astuce en php (pas trouvé comme faire autremment : y’a pas un filtre ou un #NOM_DOCUMENT ?).

    Notez que l’on a pas dans ce cas besion de modifier le mes_options.php3 ou les mes_fonctions.php3 !
    Pas besoin de filtre |flashmp3 non plus dans le squelette.
    Par contre, il faut le player flash à la racine (j’trouve que c’est plus simple, mais c’est surement customisable).

    En espérant avoir été utile, même si c’est peut être tout con comme modif...

    • Non, ce n’est pas idiot, d’ailleurs, il va bien falloir que je remette ma contrib à jour puisque cette même solution était dispo un peu plus bas dans les commentaires et ici : www.spip-contrib.net/spikini/VarianteContribPlayer-Flash-Mp3-leger

      Je laisserais tout de même l’ancienne explication, ici ou sur le wiki, qui donne malgré tout une technique appliquée aux points d’entrée.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom