Temat: Przeglądarka plików MP3
Na początek duże podziękowania dla Cezarego za pomoc, i cierpliwość
Za pewne są osoby które wykorzystują pilota do obsługi routera w celu np: odtwarzania plików mp3 lub radia internetowego i do tego podłączyli LCD do wyświetlania wyników „jak ja ”. myślę że przydało by się coś takiego jak możliwość przeglądania plików MP3 na LCD bez konieczności używania komputera.
Wyobraźmy sobie że kolega przyszedł i chciał pochwalić się jakie ma fajne kawałki MP3 na pendrive, teraz trzeba odpalać komputer czekać …. czekać w końcu się odpalił wpinamy pendrive wchodzimy na niego szukamy plików… uff …. . Albo wpinamy pendrive w wolne gniazdo USB routera i od razu mamy liste plików na LCD a że router chodzi raczej 24/h nie musimy czekać i możemy od razu przeglądać a potem odtworzyć wybrany plik w MPD.
Prawda że dużo szybciej
A wiec jak to zrobić??
Zakładam że mamy:
- Pilot
- LCD – obsługa sterownika LCD2USB
- Zainstalowany program do obsługi LCD - Lcd4linux
- Zainstalowany odtwarzacz muzyki - MPD z MPC
- wolne gniazdo USB
Pliki konfiguracyjne:
Auto uruchamianie skryptu przy włożeniu USB
Dodajemy do /etc/config/fstab coś takiego:
config mount
option target /mnt/USBB
option device /dev/sdb1
option options rw
option enabled 1
option enabled_fsck 1
list 'service' 'kopia' # <-- uruchamia skrypt o nazwie kopia
w katalogu /mnt musimy utworzyć katalog USBB oczywiście, I tam będzie automatycznie montowany każdy pierwszy wpięty pendrive.
Teraz tworzymy w /etc/init.d/ plik o nazwie kopia który po zamontowaniu pendrive wywoła kolejne polecenia potrzebne do obsługi a do niego wrzucamy taką zawartość:
#!/bin/sh /etc/rc.common
start() {
killall lcd4linux ; cp /dodatki/Ekrany/lcd4linuxKOPIA.conf /etc/lcd4linux.conf ;
cp /dodatki/pilot/lirccopy /etc/lircrc && /etc/init.d/lircd restart && lcd4linux ;
echo 0 > /dodatki/log.txt ; echo Pliki MP3 > /dodatki/lcdmenu.txt ;
echo ">" >> /dodatki/lcdmenu.txt ; echo " " > /dodatki/lcd.txt ;
/dodatki/skrypty/up.sh ; /dodatki/skrypty/licznik.sh ; mpd
}
Teraz musimy utworzyć katalog np. /dodatki i w nim będziemy trzymali potrzebne pliki do obsługi.
Kopiujemy zawartość pliku /etc/lcd4linux.conf i zapisujemy w pliku /dodatki/Ekrany/lcd4linuxdefault.conf
Kopiujemy zawartość pliku /etc/lircrc i zapisujemy w pliku /dodatki/pilot/lircdefault
Powyższe czynności pozwolą powrócić do poprzednich ustawień
Aby móc wyświetlić pliki na LCD
w katalogu /dodatki/Ekrany tworzymy plik lcd4linuxKOPIA.conf z takim wpisem :
Display LCD2USB {
Driver 'LCD2USB'
Size '20x4'
Brightness 255
Contrast 255
Icons 1
}
Widget pozycja {
class 'Text'
expression file::readline('/dodatki/log.txt', 1)
postfix '/'
align 'R'
width 5
update 100
}
Widget licznik {
class 'Text'
expression file::readline('/dodatki/lcdmenu.txt', 3)
width 4
update 100
}
Widget dmes1 {
class 'Text'
expression file::readline('/dodatki/lcdmenu.txt', 1)
width 20
update 100
}
Widget dmes12 {
class 'Text'
expression file::readline('/dodatki/lcdmenu.txt', 2)
width 1
update 100
}
Widget dmes2 {
class 'Text'
expression file::readline('/dodatki/lcd.txt', 1)
width 20
update 100
}
Widget dmes3 {
class 'Text'
expression file::readline('/dodatki/lcd.txt', 2)
width 20
update 100
}
Widget dmes4 {
class 'Text'
expression file::readline('/dodatki/lcd.txt', 3)
width 20
update 100
}
Layout L20x4 {
row1 {
Col1 'dmes1'
Col11 'pozycja'
Col16 'licznik'
}
row2 {
Col1 'dmes12'
Col3 'dmes2'
}
row3 {
Col1 'dmes3'
}
row4 {
Col1 'dmes4'
}
}
Display 'LCD2USB'
Layout 'L20x4'
Teraz aby sterować przewijaniem i odtwarzaniem plików
w katalogu /dodatki/pilot/ tworzymy plik lirccopy z takim wpisem:
begin
prog = irexec
button = BACK
config = mpc prev
end
begin
prog = irexec
button = FORWARD
config = mpc seek +5
repeat = 1
end
begin
prog = irexec
button = REWIND
config = mpc seek -5
repeat = 1
end
begin
prog = irexec
button = NEXT
config = mpc next
end
begin
prog = irexec
button = PLAY
config = mpc play
end
begin
prog = irexec
button = DOWN
config = /dodatki/skrypty/up.sh
end
begin
prog = irexec
button = UP
config = /dodatki/skrypty/down.sh
end
begin
prog = irexec
button = OK
config = /dodatki/skrypty/play.sh
end
begin
prog = irexec
button = PAUSE
config = mpc pause
end
begin
prog = irexec
button = STOP
config = mpc stop
end
begin
prog = irexec
button = ARROW
config = mpc repeat
end
begin
prog = irexec
button = PREVIEW
config = mpc single
end
begin
prog = irexec
button = DVD
config = mpd
end
begin
prog = irexec
button = VOL-
config = mpc volume -1
repeat = 1
end
begin
prog = irexec
button = VOL+
config = mpc volume +1
repeat = 1
end
begin
prog = irexec
button = CH_LIST
config = mpc clear ; mpd # w moim przypadku musi tak być gdyż wyłacza mi mpd
end
begin
prog = irexec
button = VIDEO_DESKTOP
config = /dodatki/skrypty/pilotskr/copyexitmenump3.sh
end
!!!! Koniecznie używaj przycisku z tym skryptem /dodatki/skrypty/pilotskr/copyexitmenump3.sh do odmontowania pendrive przed wyjęciem gdyż sam się nie odmontuje i może być później bałagan !!!!
Nazwy przycisków wpisać takie jak mamy przypisane do swojego pilota ( sprawdzić z irw )
Teraz tworzymy pliki skryptów dla przycisków pilota:
/dodatki/skrypty/up.sh
#!/bin/sh
B=$(find /mnt/USB* -name '*.mp3' | wc -l)
A=$(cat /dodatki/log.txt)
if [ ! "$A" == "$B" ]; then
A=$((A+1))
fi
find /mnt/USB* -name '*.mp3' | sed -n $A,$((A+4))p > /dodatki/wynik.txt
echo $A>/dodatki/log.txt
sed 's|/.*/\(.*mp3\)|\1|g' /dodatki/wynik.txt > /dodatki/lcd.txt
/dodatki/skrypty/down.sh
#!/bin/sh
A=$(cat /dodatki/log.txt)
if [ ! "$A" == "1" ]; then
A=$((A-1))
fi
find /mnt/USB* -name '*.mp3' | sed -n $A,$((A+4))p > /dodatki/wynik.txt
echo $A>/dodatki/log.txt
sed 's|/.*/\(.*mp3\)|\1|g' /dodatki/wynik.txt > /dodatki/lcd.txt
/dodatki/skrypty/play.sh
#!/bin/sh
PLIK=$(head -n1 /dodatki/wynik.txt)
KATALOG=${PLIK%/*.mp3}
MP3=${PLIK##/*/}
ln -s $KATALOG /mnt/hdd1/music; mpc add "$MP3" # /mnt/hdd1/music zmienić na taki jaki jest w /etc/mpd.conf bo tam tworza się dowiązania (linki) inaczej nie doda do play listy mpd
Kolejny skrypt pozwoli na powrót do ustawień domyślnych przed uruchomieniem przeglądarki MP3 dla pilota i lcd4linux dlatego wyżej pisałem aby skopiować pliki konfiguracji pierwotnej.
/dodatki/skrypty/copyexitmenump3.sh:
#!/bin/sh
umount /mnt/USBB;
cp /dodatki/pilot/lircdefault /etc/lircrc &&
/etc/init.d/lircd restart ;
Killall lcd4linux ; cp /dodatki/Ekrany/lcd4linuxdefault.conf /etc/lcd4linux.conf && lcd4linux ;
echo Odmontowano dysk > /dodatki/lcd.txt ;
echo " " > /dodatki/lcdmenu.txt ;
/dodatki/skrypty/usun.sh
Abyśmy widzieli ile plików znalazła przeglądarka MP3 na dysku tworzymy plik /dodatki/skrypty/licznik:
#!/bin/sh
find /mnt/USB* -name '*.mp3' | wc -l >> /dodatki/lcdmenu.txt
Każde dodanie pliku do odtwarzacza mpd wymaga utworzenia dowiązania w katalogu docelowym mpd jeśli plik się w nim nie znajduje, więc po wyjęciu pendrive zostają w nim puste linki aby za każdym razem nie usuwać ręcznie tych linków tworzymy plik /dodatki/skrypty/usun.sh a w nim:
#!/bin/sh
find /mnt/hdd1/music -type l -exec rm {} \;
Tak więc mamy teraz odtwarzacz MP3 z dodatkową automatyczną obsługą zewnętrznych nośników I możliwością przeglądania plików MP3.
Oczywiście możliwości tego rozwiązania nie kończą się na samych MP3’kach
Mam nadzieję że Tutorial będzie przydatny
Pozdrawiam
wabikboy
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka