http://www.linux-club.de/ftopic79404.html
Keyboard-input war nicht ganz leicht und ist jetzt cool.
Viele Grüße
mp3s shuffeln
Update: Jetzt werden auch Unterverzeichnisse nach Dateien auf ".mp3" durchsucht. Siehe Thread dort (Link oben).
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
man mpg321 hat geschrieben:--random or -Z Play files randomly until interrupted
--shuffle or -z Shuffle list of files before playing

[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
@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

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
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 dochos.path.basename kann übrigens statt Deiner cutDir-Methode verwendet werden.
Für die mehrfachen print-Anweisungen in verschiedenen Methoden böte sichan.
In der inneren while-Schleife von playShuffle sollten alle bis auf die ersten beiden ifs in elif geändert werden.
wäre einfacher
Die Schleifewürde ich eher so formulieren:
Bei den Eingaben würde ich auch Großbuchstaben erlauben.
Nach PEP8 sollten Methoden in der Form new_terminal_settings benannt werden.
MfG
HWK
In der Methode getMp3List müsste a.remove(u) wohl a.remove(i) heißen; viel einfacher wäre aber doch
Code: Alles auswählen
...
a.sort(key=os.path.basename)
return a
Für die mehrfachen print-Anweisungen in verschiedenen Methoden böte sich
Code: Alles auswählen
print '''Mehrzeiliger
Text'''
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)
Code: Alles auswählen
self.rorder = random.sample(range(self.nrmp3s), self.nrmp3s)
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 = ""
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
Nach PEP8 sollten Methoden in der Form new_terminal_settings benannt werden.
MfG
HWK