Portál AbcLinuxu, 2. května 2025 00:12

Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe

11.3.2007 22:15 | Přečteno: 1268× | bla

Tak jsem "neměl" co dělat ;)... (ono ty vypadá, že nemám(e) co dělat pořád). Tak jsem napsal BASH script (to je účel). Sice musíte nejdříve vygenerovat seznam všech písniček a pak vám je vesele a náhodně přehrává v mpg321. Přeskakování CTRL+C, ukončení zběsilé CTRL+C. Doufám že vám vůbec nepomohl a že mě hned usadíte, že ten patřičný přehrávač co používáte to zajisté umí. :DDD

Do proměnné cesta vlozte vasi cestu k hudbě, do této cesty doporučuji taky script uložit. Ovládání je jednoduché... ./jmeno seznam vygeneruje seznam ;), ./jmeno play nebo ./play zacne hrat.

#!/bin/bash
koren=""
vystup="seznam"
cesta="/home/repli/Audio/Hudba"
hlavni=$cesta
declare -i i

generuj() {
rm "$cesta/seznam"
touch "$cesta/seznam"
  local tmp

  for soubor in *; do
    if [ "$soubor" == "*" ]; then
      break
    fi

    if [ -d "$soubor" ]; then
      cd "./$soubor"
      tmp="$cesta"
      cesta="$cesta/$soubor"
      generuj
      cd "../"
      cesta="$tmp"
    else
      if [ "$soubor" != "$vystup" ] || [ "$cesta" != "./" ]; then
        pwd=$(pwd)
        cd "$koren"
	echo "$cesta/$soubor";
        echo "$cesta/$soubor" >> "$hlavni/seznam"
        cd "$pwd"
      fi
    fi
  done
}

echo "Prehravac z prikazove radky"
echo "------------------------------------------------------------------"
echo "Hrát 	./muzika.sh play nebo ./muzika.sh";
echo "Generovat seznam	./muzika.sh seznam";
echo "------------------------------------------------------------------"
if [ "$1" == "play" ] || [ "$1" == "" ]; then
	echo "Já hraji, namiste!";
	pocet=`cat ./seznam | wc -l `
	COUNTER=0;
	while [  $COUNTER -lt 10 ]; do
		i=`expr $RANDOM % $pocet`
		mpg321 "`sed -n ${i}p ./seznam`"
		sleep 1
	done
else
if [ "$1" == "seznam" ]; then
	echo "Generuji seznam, vyckejte...";
	generuj
fi
fi

       

Hodnocení: 0 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

11.3.2007 22:29 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Odpovědět | Sbalit | Link | Blokovat | Admin
find all mptrojkas | urob radky do tvaroj $RANDOM:mptrojanky-filenajme | sesortoj podle prvni polozky | cutuj prvni field | xarags mpg1234
11.3.2007 23:11 stoupa
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Tam bude problém s tím $RANDOM, expandujícím jen jednou.
12.3.2007 08:52 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
šak som řeklo do tvaroj, keď tam da while read fiil; do eccho "$RANDOM:$fiil"..., tak problema nema
12.3.2007 10:53 stoupa
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
To už je lepší …

find . -type f -iname '*mp3' | while read; do echo $RANDOM:$REPLY; done | sort -n | cut -d: -f2 | xargs mpg123

Může ale nastat potíž s názvy, ne? (I když málokdo má v názvu souboru \n.)
Josef Kufner avatar 12.3.2007 14:03 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
find . -type f -iname '*mp3' \
| while read; do printf '%s\0' "$RANDOM:$REPLY"; done \
| sort -n | cut -d: -f2 \
| xargs -0 mpg123
Hello world ! Segmentation fault (core dumped)
12.3.2007 23:33 stoupa
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Tak tohle bych nerad pokládal za řešení. Přece find to na standardní výstup pošle s oddělovačem \n, obdobně read rozliší jednotlivé záznamy podle \n. Teprve pak tam začneš operovat s NUL, čímž na vstup sort dostaneš jeden dlouhý řádek – výsledek řazení tudíž vždy odpovídá vstupnímu řetězci. Že se pak ustřihne jen první $RANDOM: a ostatní tam zůstanou je asi jasné …

Jedním slovem „nebrat“.
Conyx avatar 11.3.2007 22:59 Conyx | skóre: 5 | blog: c-blog
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Odpovědět | Sbalit | Link | Blokovat | Admin
Doufám že vám vůbec nepomohl a že mě hned usadíte, že ten patřičný přehrávač co používáte to zajisté umí. :DDD

Ano!! :D

#!/bin/bash

mpc clear >/dev/null;
mpc listall | mpc add >/dev/null;
mpc random on >/dev/null;
mpc next >/dev/null;
mpc play;

Jan Drábek avatar 11.3.2007 23:09 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Četl jsem o tomto řešení ale moc se mi nelíbilo. ;)
01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
Josef Kufner avatar 12.3.2007 02:30 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Jo, používám něco podobného...
key "Alt+Shift+b"  sh -c "xmms-shell -e forward || mpc next"
key "Alt+Shift+z"  sh -c "xmms-shell -e backward || mpc prev"
key "Alt+Shift+c"  sh -c "xmms-shell -e pause || mpc pause"
key "Alt+Shift+x"  sh -c "xmms-shell -e play || mpc play"
key "Alt+Shift+v"  sh -c "xmms-shell -e stop || mpc stop"
key "Alt+Shift+n"  sh -c "xmms-shell -e randomtrack || ( mpc random on ; mpc next ; mpc random off )"
Hello world ! Segmentation fault (core dumped)
12.3.2007 09:35 botanicus | blog: Botanicusovi povzdechy | Prachatice
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Tak to je fakt cool ... v mem oblibenem MOC je to jedna volba v konfiguraku nebo stisk jedne klavesy v prehravaci :)
... mam chut na jablicka ;)
12.3.2007 00:08 Michal
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Odpovědět | Sbalit | Link | Blokovat | Admin
man mpg123
       -z, --shuffle
              Shuffle play.  Randomly shuffles the order of files specified on the command  line,  or  in
              the list file.

       -Z, --random
              Continuous  random  play.   Keeps  picking  a random file from the command line or the play
              list.  Unlike shuffle play above, random play never ends, and plays individual  songs  more
              than once.
Jan Drábek avatar 12.3.2007 09:08 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Nebojte tak blbej zase nejsem... Random jsem zkoušel ale to bych musel všechnu hubdu do jednoho adresáře, a shuffle odmítal nějak brát soubor...
01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
12.3.2007 18:45 anicka | blog: ze_zivota
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Jestli shuffle nebere soubor, tak by mozna bylo zasluznejsi to spravit nez psat takovehle hacky ;-)

Dik za upozorneni, kdyz uz me potkalo to nestesti, ze u nas tuhle obludu maintainuju, zkusim se na to nekdy brzy mrknout.
^D
Vašek Lorenc avatar 12.3.2007 22:16 Vašek Lorenc | skóre: 27
Rozbalit Rozbalit vše Re: Neužitečné scripty -1: Přehrávání náhodných MP3 z bashe
Odpovědět | Sbalit | Link | Blokovat | Admin
Občas si člověk může pomoci s rl: randomize lines...
...včetně majestátného loosa

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.