2016-04-10 19 views
1

私は、プレイリストを使って複数の曲をPythonを使って再生できるようにしたいが、リストの最後の曲だけを再生する。助けてください。ケースされていない -Pythonの音楽プレーヤーが動作しない

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() 

答えて

2

あなたの問題は、あなたがpygameので音楽を再生すると、音楽が終了するまで、プログラムを一時停止することを前提としていることです。その結果、曲を開始しようとしてから別の曲や別の曲を開始しようとします。

これを修正する方法はいくつかあります。曲が終了すると(これは、表示面(窓が必要ですが)pygameの中にオープンする)とき

  1. 使用pygameのイベントとは、イベントを発生するpygameのを「伝える」、または
  2. は、長さを検出する:あなたは、どちらかの可能性その時間分(現在のコードと互換性があります)、スリープ状態になります。

私はあなたのコードがうまく機能するので、オプション2をしたいと仮定します。

MP3ファイルの長さを取得するには(他のタイプでは試していません)、Mutagenライブラリを使用できます。

(秒)MP3ファイルの長さを得るために、いくつかのサンプルコード:

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

その後、あなたは次に進む前に、返された時間の量のためにy、およびtime.sleepでパスを置き換えることができループの反復。

希望に役立ちます。

(も、あなたがそれをロードする前にファイルをキューイングする必要はありません - ちょうどloadplay

+0

!!!!!!!!ありがとう – user3570933

+0

問題はない、@ user3570933、もし私の答えが助けてくれたら、それを受け入れることができるだろうか?矢印の真下のチックで、答えの左側の数字です。 – Scratso

関連する問題