Seite 1 von 1
mp3s shuffeln
Verfasst: Montag 16. April 2007, 22:22
von abgdf
http://www.linux-club.de/ftopic79404.html
Keyboard-input war nicht ganz leicht und ist jetzt cool.
Viele Grüße
Verfasst: Freitag 14. September 2007, 16:57
von abgdf
Update: Jetzt werden auch Unterverzeichnisse nach Dateien auf ".mp3" durchsucht. Siehe Thread dort (Link oben).
Verfasst: Freitag 14. September 2007, 20:20
von veers
man mpg321 hat geschrieben:--random or -Z Play files randomly until interrupted
--shuffle or -z Shuffle list of files before playing
Verfasst: Freitag 14. September 2007, 21:34
von abgdf
@veers: Ja, "mpg321 -z/-Z" hatte ich auf der Seite ja auch erwähnt. Probier mein Skript halt mal aus (wenn Du mit Linux / xterm unterwegs bist), vielleicht merkst Du dann, warum ich das trotzdem geschrieben habe (und warum mpg321 so einen Remote-control-mode zur Verfügung stellt). Kostet ja nichts
.
Andererseits macht mein Skript das halt genau so, wie ich persönlich es will, es kann gut sein, daß andere das anders wollen, und das Skript dann nicht so praktisch finden
.
Das ist eben Geschmacksfrage, und die anderen Programme waren da zwar ganz gut, aber eben nicht GENAU so.
Zum Beispiel habe ich keine Lust, mit Playlists zu hantieren. Ich will einfach in ein Verzeichnis gehen und dort jeweils sofort alle mp3s angezeigt bekommen und abspielen. Auch das mit der direkten Tastaturkontrolle mit schnellem Vor- und Zurückspringen zwischen den Stücken ist mir wichtig.
Viele Grüße
Verfasst: Samstag 15. September 2007, 12:27
von HWK
Ich habe den Code nur kurz überflogen und bin dabei über ein paar Dinge gestolpert:
In der Methode getMp3List müsste a.remove(u) wohl a.remove(i) heißen; viel einfacher wäre aber doch
os.path.basename kann übrigens statt Deiner cutDir-Methode verwendet werden.
Für die mehrfachen print-Anweisungen in verschiedenen Methoden böte sich
an.
In der inneren while-Schleife von playShuffle sollten alle bis auf die ersten beiden ifs in elif geändert werden.
Code: Alles auswählen
self.rorder = []
for i in range(self.nrmp3s):
self.rorder.append(i)
random.shuffle(self.rorder)
wäre einfacher
Code: Alles auswählen
self.rorder = random.sample(range(self.nrmp3s), self.nrmp3s)
Die Schleife
Code: Alles auswählen
sn = ""
while not sn.isdigit():
sn = raw_input('Song to play (q to quit) ? ')
if sn == "q":
self.newTerminalSettings()
self.current -= 1
print
return
if sn.isdigit():
if sn == "0" or int(sn) > self.nrmp3s:
sn = ""
würde ich eher so formulieren:
Code: Alles auswählen
while True:
sn = raw_input('Song to play (q to quit) ? ')
if sn == "q":
self.newTerminalSettings()
self.current -= 1
print
return
if sn.isdigit() and 0 < int(sn) <= self.nrmp3s:
break
Bei den Eingaben würde ich auch Großbuchstaben erlauben.
Nach PEP8 sollten Methoden in der Form new_terminal_settings benannt werden.
MfG
HWK