2016-04-10 31 views
1

Python kullanarak bir çalma listesinden birden fazla şarkı çalabilmek istiyorum, ancak sadece son şarkıyı listede çalacak. Lütfen yardım et. durum böyle değil ki -Python müzik çalıcısı çalışmıyor

from pygame import mixer # Load the required library 
from os import listdir 
k = listdir('C:/LOCAL') 
print(k) 
mixer.init() 
for x in k: 
    y = "C:/LOCAL/" + x 
    print y 
    mixer.music.queue(y) 
    mixer.music.load(y) 
    mixer.music.play() 

cevap

2

Senin sorunun pygame ile müzik çalma müzik bitene kadar programı duraklar farz olmasıdır. Sonuç olarak, bir şarkı başlatmayı dener, ve sonra başka bir diğerine başlar, vb.

Bunu düzeltmeye çalışmanın birkaç yolu vardır. Şarkı bittiğinde (bu bir ekran yüzeyine (pencere gerektirir olsa da) pygame içinde açılacak) ne zaman

  1. Kullanım pygame olayları ve olay yangın Pygame "anlatmak" ya
  2. uzunluğu Algılama: Sen de yapamaz şarkının, ve bu süre boyunca uyku (ki mevcut kod ile daha uyumlu).

Kodunuz daha iyi çalıştığından, seçenek 2'yi yapmak istediğinizi varsayalım.

Bir MP3 dosyasının uzunluğunu almak için (başka türlerle denemedim), Mutagen kitaplığını kullanabilirsiniz. Bir sonraki geçmeden önce, dönen süre boyunca

from mutagen.mp3 import MP3 
tracklength = MP3("/path/to/song.mp3").info.length 

Sonra y ile yolunu yerine olabilir ve time.sleep:

Bazı örnek kod (saniye cinsinden) bir MP3 dosyasının uzunluğunu almak için döngünün yinelemesi.

Bu yardımcı olur umarım.

(ayrıca, bunu yüklemeden önce bir dosya sıraya gerekmez - sadece load ve play)

+0

!!!!!!!! teşekkürler – user3570933

+0

Sorun değil, @ user3570933, cevabım yardımcı olsa bile lütfen kabul edebilir misiniz? Cevabımın solundaki oklar ve sayıların hemen altındaki işarettir. – Scratso