Musik mit VLC in Python3 wiederholen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
killerkaninchen
User
Beiträge: 6
Registriert: Dienstag 11. Juni 2019, 14:13

Hallo zusammen

Ich bin Python-Neuling und ich möchte gerne in Python VLC nutzen um einen gewählten Titel immer wieder zu wiederholen, bis der Nutzer angibt, dass er etwas anderes hören möchte. Das sieht so aus:

Code: Alles auswählen

def musicplayer(titel):

    p = vlc.MediaPlayer(titel)
    p.play()
    print("Im Moment läuft:", titel)
    nochmal = input("Soll etwas anderes laufen? \n").lower()
        if "ja" in nochmal:
        pass
    elif "nein" in nochmal:
        print("Bis zum nächsten Mal. :)")
        sleep(3)
        sys.exit(0)
        
Das funktioniert soweit auch alles. Ich finde nur keine Möglichkeit, hier ein repeat anzugeben.
Pygame ist auch keine Lösung (repeat funktioniert zwar), da es zu Wiedergabefehlern kam.
Wie bekomme ich die Wiederholungen hin?

Danke im Voraus
Killerkaninchen
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das sollte mit dem event-manager gehen. Du gibst nicht repeat an, sondern wartest auf das Ende und spielst wieder von vorne ab.

https://stackoverflow.com/questions/359 ... lback-type
killerkaninchen
User
Beiträge: 6
Registriert: Dienstag 11. Juni 2019, 14:13

Wenn ich das richtig verstehe muss ich die dort beschriebene Funktion ín eine Klasse einbauen...? (Hatte das bisher als reine Funktion gebaut.) Werde ich versuchen.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich finde die Dokumentation nicht so knallig, aber Klasse kann nicht schaden fuer sowas.
killerkaninchen
User
Beiträge: 6
Registriert: Dienstag 11. Juni 2019, 14:13

Ich habe in der Zwischenzeit die betreffenden mp3-Dateien in ogg konvertiert. Damit funktioniert auch die Wiedergabe problemlos ohne Audio-Fehler. Vor allem habe ich beim Durchschauen der verlinkten vlc-Ansätze das Gefühl (habe es nicht ausprobiert), dass der Nutzer nicht so einfach das Musikstück wechseln kann.
Mit Pygame sieht das so aus und funktioniert:

Code: Alles auswählen

def musicplayer(titel):

    pygame.mixer.init()
    pygame.mixer.music.load(titel)
    pygame.mixer.music.play(-1)
    print("Im Moment läuft:", titel)
    nochmal = input("Soll etwas anderes laufen? \n").lower()

    if "ja" in nochmal:
        pygame.mixer.music.fadeout(3000)
        pass
    elif "nein" in nochmal:
        print("Bis zum nächsten Mal. :)")
        pygame.mixer.music.fadeout(3000)
        sleep(3)
        sys.exit(0)
Danke für die Antworten - ich lasse den Beitrag noch offen, da es mit VLC ja noch nicht gelöst ist.
Antworten