mp3s shuffeln

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
abgdf

mp3s shuffeln

Beitragvon abgdf » Montag 16. April 2007, 22:22

http://www.linux-club.de/ftopic79404.html

Keyboard-input war nicht ganz leicht und ist jetzt cool.

Viele Grüße
abgdf

Beitragvon abgdf » Freitag 14. September 2007, 16:57

Update: Jetzt werden auch Unterverzeichnisse nach Dateien auf ".mp3" durchsucht. Siehe Thread dort (Link oben).
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Freitag 14. September 2007, 20:20

man mpg321 hat geschrieben:--random or -Z Play files randomly until interrupted
--shuffle or -z Shuffle list of files before playing
;)
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
abgdf

Beitragvon abgdf » Freitag 14. September 2007, 21:34

@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 :wink:.

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 :roll:.
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
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Samstag 15. September 2007, 12:27

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

Code: Alles auswählen

...
a.sort(key=os.path.basename)
return a
os.path.basename kann übrigens statt Deiner cutDir-Methode verwendet werden.

Für die mehrfachen print-Anweisungen in verschiedenen Methoden böte sich

Code: Alles auswählen

print '''Mehrzeiliger
Text'''
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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder