Machine à musique
Mes clients sont des artistes utilisant spip. Ils voulaient un moyen simple de présenter leurs extraits sonores.
Le format des extraits est .mp3 , joints comme documents à un article ou indépendants.
Le jukebox peut jouer un .mp3 unique ou un liste .xspf comme celle produite par XSPF à partir du chapeau , du post-scriptum et des documents mp3 qui sont joints à un article
Objectifs
2Simple2 Bien sûr, spip permet de joindre des mp3, leur lecture n’est alors pas compliquée … si vous avez ce qu’il faut. Nous le voulions en un seul click. 2Universel2 Ceci doit marcher pour tout un chacun. Les navigateurs n’ayant pas tous tout, c’est pourquoi nous avons finalement aimé cette solution Flash © Macromedia 2Facile à implémenter2 La contribution initiale fournissait un popup avec le format extended . Je m’oriente maintenant , suite notamment à des discussions avec boOz vers quelque chose de plus intégré et facile à implémenter.
XSPF Web Music Player (Flash)
Music Player – Plays MP3 on your website
Vraiement très bien fait.
Le truc n’a besoin que de la liste des mp3 en xspf cf. XSPF ou en mode single, seulement la référence du mp3.
3 formats sont disponibles pour le player :
button (bouton),
slim (mince, avec des controles),
extended (avec une liste et tout)
Cerise pour le gateau, on peut associer une image à chaque mp3 dans ce mode étendu. Notez qu’elles doivent être des jpg, et qu’elles seront réduites à 130*130 par le player, autant le faire d’abord.
Important ça n’accepte que du mp3 échantilonnés au standard 44,1 kHz / 128kbps . (au cas où ça ne joue pas à la bonne vitesse) 2Nécessaire en dehors de Spip2 Pour pouvoir utiliser un de ces flash-player , attention il y a couramment une erreur dans la page principale [1], vous devez télécharger le .swf correspondant et le rendre disponible sur le site.
Le mieux étant dans un répertoire propre , mettons spip/player/
Selon le(s) modes désiré(s) , vous aurez donc un ou plusieurs parmi :
spip/player/musicplayer.swf (button)
spip/player/xspf_player_slim.swf (slim)
spip/player/xspf_player.swf (extended) 2L’appel brutal
<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″
codebase=”http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0″
width=”420″ height=”153″>
<param name=”allowScriptAccess” value=”sameDomain” />
<param name=”movie”
value=”[(#URL_SITE_SPIP)]/player/xspf_player.swf?autoload=true&playlist_url=the/playlist.xml” />
<param name=”quality” value=”high” />
<embed src=”[(#URL_SITE_SPIP)]/player/xspf_player.swf?autoload=true&playlist_url=the/playlist.xml”
name=”xspf_player” allowscriptaccess=”sameDomain” type=”application/x-shockwave-flash”
quality=”high” pluginspage=”http://www.macromedia.com/go/getflashplayer”
align=”center” width=”420″ height=”153″ />
</object>
Si si , il y a besoin de tout ça … doublement embed + object pour plaire à tous les navigateurs. Ici, #URL_SITE_SPIP et les parenthèses droites et courbes autour représentent le réperioire de base de spip , et xspf_player.swf signifie qu’on utilise la version extended , celle de base d’ailleurs. 2Les paramètres du Flash2
Nom |
Signification |
Rem. |
playlist_url |
L’url de la liste xspf à jouer, ce peut être un fichier statique ou l’url d’un script la produisant . |
|
autoplay |
Valeur booléenne indiquant si la diffusion doit démarrer toute seule au chargement (sans que l’utilisateur ne clique) |
(bool) |
autoload |
Valeur booléenne indiquant si le media doit être préchargé (évite un temps d’attente lorsque l’utilisateur démarre l’écoute) |
(bool) |
repeat_playlist |
Valeur booléenne indiquant si la liste doit jouer en boucle |
(bool) |
playlist_size |
Limite du nombre de morceaux |
|
player_title |
Texte en remplacement du défaut Player |
|
info_button_text |
Message d’information associé au bouton |
|
radio_mode |
Valeur booléenne indiquant que le dernier morceau est en fait une playliste (xspf) qui sera chargée en place de l’actuelle |
(bool) |
song_url |
L’url du morceau |
(mp3) |
song_title |
Le titre du morceau |
(mp3) |
(bool) : sera vraie si présent dans les paramètres, quelque soit la valeur : bidule=false est vrai ! Faux s’obtient simplement en ne fournissant pas le paramètre.
(mp3) : dans le cas d’une utilisation en mode simple , un seul mp3 au lieu d’une liste xspf
Dans spip
EN COURS DE REDACTION , c’est plus un cahier des charges pour l’instant.
Il y a plusieurs possibilités pour intégrer un “player”.
C’est possible au niveau squelette , pour faire des rubriques ou articles spécialisés , un peu comme ça existe pour des galeries photo. Ca pourrait être une balise #PLAY… avec une référence doc , comme dans une boucle DOCUMENTS pour produire un player sur des documents, ou une référence article ou document.
Une autre idée est un filtre , qui appliqué sur du texte , transformerait les & ou <EMBxx> en player. <DOCxx> devrait être réqervé au téléchargement de l’oeuvre.
On peut aussi prévoir un tag <PLAY…> intégrable par le rédacteur … ou le squeleteur. C’est normalement le boulot de <EMBxxx> mais pas de mélange dans un premier temps. D’ailleurs, <EMB> ne s’applique qu’au niveau document.
<PLAY…> devrait être possible au niveau document joint mais aussi , pour produire des listes jouables au niveau article voire rubrique. Soit :
<PLAY_DOC…> c’est l’<EMB…> actuel,
<PLAY_ART…> qui intégrerait un player avec la liste des documents joints à l’article,
<PLAY_RUB…> qui colationerait sur tous les articles de la rubrique.
En tout cas , de nombreux paramêtres sont envisageables , comme largeur/hauteur pour l’objet ou autoload , autoplay pour le player.
Techniquement, on peut produire du code HTML direct , ou passer par un javascript onload , comme le fait Le Radiphone
Evidemment , le but du jeu serait finalement :
- de permettre le même fonctionnement pour tout type de document joint , par exemple jouer de même des videos ou d’autres formats audio comme .ogg
- pour un type donné , permettre différents players selon la configuration voire le client.
à plus tard 🙂 …