Pages : 1
#1 Le 18/04/2008, à 12:26
- n3o51
[RESOLU] [Script]play .mp3
Bonjour a tous voila j'ai besoin de votre aide !!!!
Dans mon .bashrc
#function easyplay
# ex: `easyplay .mp3` #lira tous vos fichiers mp3
# ex: `easyplay "Coldplay"` lira tous vos mp3 de Coldplay
# NB: Ne tient pas compte de la casse
# NB: Ne lit que les fichiers contenant .mp3 dans leur nom
# NB: Avec Ctr+c vous passez au morceau suivant
# NB: Avec Ctr+c maintenu, vous quittez cette fonction
#
function easyplay()
{
playlist=`locate -i $1 | grep ".mp3$"`
echo "Going to play:"
echo $playlist | sed "s/^/ /"
echo $playlist | sed "s/^\(.*\)$/play \"\1\";/" | sh
}
##echo $playlist | sed "s/^\(.*\)$/play \"\1\"/" | sh
##echo $playlist | sed "s/^\(.*\)$/play \"\1\"/" | sh
C'est un test ici
Donc le but c'est d'avoir une liste de mes .mp3 ensuite de les lires .
Mon probléme si je n'est seulement un .mp3 de trouvé dans mes repertoires il va le lire mais si j'en ai de par exemple il me met une erreur qui est
13:02:00 n3o@matrix:~/Desktop<$> $ easyplay .mp3
Going to play:
/home/n3o/Desktop/walk.mp3 /home/n3o/Desktop/rose.mp3
play stio: Can't open input file `/home/n3o/Desktop/walk.mp3 /home/n3o/Desktop/rose.mp3': No such file or directory
si j'avais laissé que wlk.mp3 cela ce lance sans probleme aussi j'aurai voulu savoir si je met au lancement de mon ordi ...
Un script sous la forme
#!/bin/bash
gksudo -u root "updatedb "
Il me demandera pas le mot de passe et effectuera bien un updatedb au lancement de la sessions qui bien sur necessaire pour par la suite qu'il trouve bien mes .mp3
j'attend votre aide avec impatience !!!
Merci par avance .....
Dernière modification par n3o51 (Le 20/04/2008, à 11:13)
Welcome to the real world
________________________________
Hors ligne
#2 Le 18/04/2008, à 13:00
- Yannick_LM
Re : [RESOLU] [Script]play .mp3
gksudo -u root "updatedb "
Alors :
1. ça marche pas : on va effectivement te demander ton mot de passe
2. C'est inutile : regarde dans /etc/cron.daily
La base de locate se met à jour toute seule tous les jours
echo $playlist | sed "s/^\(.*\)$/play \"\1\";/" | sh
C'est pas très joli, ça
Je préfère faire avec un petit fichier temporaire et une boucle :
locate -i $1 | grep ".mp3$" > /tmp/playlist
while read morceau ;
do play $morceau ;
done < /tmp/playlist
Voilà, voilà.
sinon, en dehors de l'aspect ludique d'écrire des scripts soi-même, si la lecture de musique en console t'intéresse, je ne peux que te conseiller mpd.
Dernière modification par Yannick_LM (Le 18/04/2008, à 23:35)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#3 Le 18/04/2008, à 13:20
- n3o51
Re : [RESOLU] [Script]play .mp3
function easyplay()
{
locate -i free | grep ".mp3$" > /tmp/playlist
while read morceau ;
do play $morceau ;
done < /tmp/playlist
}
J'ai remplacer mais la il ce passe rien !!!
Welcome to the real world
________________________________
Hors ligne
#4 Le 18/04/2008, à 13:23
- n3o51
Re : [RESOLU] [Script]play .mp3
La si je comprend il va plus m'afficher ce qu'il va lire aussi.
En plus la playlist ne ce rempli pas
Dernière modification par n3o51 (Le 18/04/2008, à 13:25)
Welcome to the real world
________________________________
Hors ligne
#5 Le 18/04/2008, à 20:01
- n3o51
Re : [RESOLU] [Script]play .mp3
petit up:(
Welcome to the real world
________________________________
Hors ligne
#6 Le 18/04/2008, à 23:39
- Yannick_LM
Re : [RESOLU] [Script]play .mp3
Oups. J'ai édité le message original, autant pour moi.
(j'avais testé avec free, comme mot clé)
Pour l'affichage de la playliste, suffit d'ajouter un | tee :
Celui-là fonctionne parfaitement chez moi :
#!/bin/bash
locate -i $1 | grep ".mp3$" | tee /tmp/playlist
while read morceau ;
do play $morceau ;
done < /tmp/playlist
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#7 Le 19/04/2008, à 13:45
- n3o51
Re : [RESOLU] [Script]play .mp3
je te remercie beaucoup yannick ^^
Welcome to the real world
________________________________
Hors ligne
#8 Le 19/04/2008, à 13:46
- n3o51
Re : [RESOLU] [Script]play .mp3
Une chose m'etonne parcontre c'est qu'il ne vas pas voir sur mon dur externe ...
Autre chose qui pourrai je pense etre interressant c'est qu'il lise en boucle la playlist ce qu'il ne fait pas actuellement connait tu le moyen de faire cela !!!!
Dernière modification par n3o51 (Le 19/04/2008, à 13:51)
Welcome to the real world
________________________________
Hors ligne
#9 Le 19/04/2008, à 17:25
- Yannick_LM
Re : [RESOLU] [Script]play .mp3
Une chose m'etonne parcontre c'est qu'il ne vas pas voir sur mon dur externe ...
Faut voir ça avec les parmaètres de locate.
(sachant qu'il y a mlocate et slocate, aussi).
Là, je ne peux que te conseiller de te renseigner par toi-même, j'utilise slocate chez moi et ça a toujours marché
Pour la lecture en boucle, il suffit de faire ... un boucle autour de la lecture de la playlist.
Je suis sûr que tu peux faire ça tout seul
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#10 Le 19/04/2008, à 20:05
- n3o51
Re : [RESOLU] [Script]play .mp3
Merci monsieur pour avoir repondu a mes interogation
Aprés je t'embete plus si j'integre ceci dans ma fonction va t'il me remplacer les espaces par un _ ce qui permetera de plus etre embeter avec les espaces !!!
for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done
function easyplay()
{
echo "Votre playlist:"
for i in *.mp3$; do mv "$i" `echo $i | tr ' ' '_'`; done
locate -i $1 | grep ".mp3$" | tee /tmp/playlist
while read morceau ;
do play $morceau ;
done < /tmp/playlist
}
Me dire aussi si son inegration est bonne dans ma fonction
Désolé je suis un gros debutants en $cript ....
Welcome to the real world
________________________________
Hors ligne
#11 Le 19/04/2008, à 21:29
- n3o51
Re : [RESOLU] [Script]play .mp3
Aussi j'ai fait un boucle mais plus moyen d'arretter avec ctrl +c donc je dois pas trop savoir comment faire
function easyplay()
{
echo "Votre playlist:"
locate -i $1 | grep ".mp3$" | tee /tmp/playlist
while ((1))
do
while read morceau ;
do play $morceau ;
done < /tmp/playlist
done
}
Welcome to the real world
________________________________
Hors ligne
#12 Le 19/04/2008, à 22:02
- Alain.g
Re : [RESOLU] [Script]play .mp3
Bonsoir,
Utilise plutôt mplayer avec l'option "-loop 0" (sans faire de boucle)
Il dispose d'autres options qui pourraient t'intéresser, comme -shuffle, pour lire la liste d'une manière aléatoire.
Remplacer les espaces est une mauvaise idée : il convient de protéger les variables par des guillemets. Non seulement cela réglera tes problèmes avec les espaces, mais ça évitera l'interprétation des caractères spéciaux éventuellement contenus dans les noms des fichiers.
Le seul espace blanc embêtant dans les noms est le saut de ligne, mais ça reste très rare.
Sur la base de ton code :
function easyplay ()
{
echo "Votre playlist:"
locate -i $1 | grep "\.mp3$" | tee /tmp/playlist
mplayer -loop 0 -playlist /tmp/playlist
}
ou
easyplay () {
unset playlist
while read i ; do playlist+=("$i") ; done < <(locate -i "$@" | egrep -i '\.(mp3|ogg)$')
if [ ${#playlist[*]} != 0 ] ; then
echo -e "Votre playlist : ${playlist[@]/#/\n● }"
MPLAYER_VERBOSE=-2 mplayer -msglevel statusline=6:demux=5:cplayer=4 -loop 0 "${playlist[@]}"
else
echo aucun fichier trouvé
fi
}
(il faut une version récente de mplayer pour ces options de msglevel)
Dernière modification par Alain.g (Le 19/04/2008, à 22:56)
Xubuntu Karmic !
Hors ligne
#13 Le 19/04/2008, à 22:52
- n3o51
Re : [RESOLU] [Script]play .mp3
Merci beaucoup pour tes reponses et les explications mais le soucis avec mplayer c'est qu'il ne permet pas de passer au morceau suivant et de stopper la lecture rapidement ...Si !!!
Welcome to the real world
________________________________
Hors ligne
#14 Le 19/04/2008, à 22:58
- Alain.g
Re : [RESOLU] [Script]play .mp3
Merci beaucoup pour tes reponses et les explications mais le soucis avec mplayer c'est qu'il ne permet pas de passer au morceau suivant et de stopper la lecture rapidement ...Si !!!
bien sûr que si : ">" ou "<" pour le morceau suivant ou précédent. "p" pour pause et "q" pour arrêter (entre autres... voir le manuel pour plus de détails)
Xubuntu Karmic !
Hors ligne
#15 Le 19/04/2008, à 23:02
- n3o51
Re : [RESOLU] [Script]play .mp3
Merci monsieur effectivement je venait de voir ca
Dernière modification par n3o51 (Le 19/04/2008, à 23:02)
Welcome to the real world
________________________________
Hors ligne
#16 Le 19/04/2008, à 23:08
- n3o51
Re : [RESOLU] [Script]play .mp3
${playlist[@]/#/\n● }" tu peut m en dire un peut plus la dessus
Welcome to the real world
________________________________
Hors ligne
#17 Le 20/04/2008, à 06:06
- Alain.g
Re : [RESOLU] [Script]play .mp3
playlist[@] : correspond à tous les éléments du tableau (ici chaque morceau)
/#/\n● : on fait ici une substitution. "#" indique le début de chaîne, comme il n'y a rien derrière, cela revient en fait à insérer "\n● " devant chaque élément ("\n" est un saut de ligne)
Ce permet donc d'avoir un affichage du style :
Votre playlist :
● /dossier/un morceau.mp3
● /dossier/un autre morceau.mp3
cf : http://abs.traduc.org/abs-4.2.01-fr/ch09s02.html#substringreplacement
Xubuntu Karmic !
Hors ligne
#18 Le 20/04/2008, à 10:41
- n3o51
Re : [RESOLU] [Script]play .mp3
Merci pour tout alain et yannick
Welcome to the real world
________________________________
Hors ligne
Pages : 1