2014-11-30 1 views
0

저는 파이 게임을 사용하고 여러 mp3 파일을 재생하고 30 초마다 디렉토리를 통해 새로운 mp3 파일로 회전하는 스크립트를 작성하려고합니다.파이 게임을 사용하여 여러 mp3 파일을 하나씩 재생하는 방법?

는 지금까지 수행하여 특정 파일을 재생하는 방법을 배운 다음

import pygame 

file = 'EverythingInItsRightPlace.mp3' 
pygame.init() 
pygame.mixer.init() 
pygame.mixer.music.load(file) 

내 스크립트의 각 파일을 지정해야합니까? 모든 MP3 파일을 차례로 재생하고 30 초 후에 다음 mp3 파일을 재생하려면 어떻게해야합니까?

편집 **

30 초 후에 노래를 끌 수있었습니다. 그러나 나중에 새 노래로 바꾸는 방법을 여전히 확신 할 수 없습니다.

while pygame.mixer.music.get_busy(): 
    pygame.time.Clock().tick(30000) 
    if pygame.time.delay(30000): 
     break 

감사합니다.

답변

1

멋진 음악을 선택하십시오!

모든 MP3 파일 이름을 얻을 수 있습니다 :

import os 
for filename in os.listdir("/mydirectory"): 
    if filename.endswith(".mp3"): 
     file = filename 

을 지금, 당신과 함께 음악을 재생 한 후 : 당신이 30 초에 음악 재생 30 초 동안 기다릴 수

pygame.mixer.music.play() 

:

while pygame.mixer.music.get_busy(): 
    pygame.time.Clock().tick(30000) 
    # you can break out the loop and change the file to be played after this. 
+0

도움 주셔서 감사합니다. 마침내 디렉토리에서 .mp3 파일을 재생 중입니다. 이후에 재생할 파일을 어떻게 변경합니까? 나는 http://www.pygame.org/docs/ref/time.html#pygame.time.Clock.get_time에서 몇 가지 시도를 해왔지만 여전히 알아낼 수 없다. 이 경우 지연을 사용합니까? 지연되면 다음 파일을 재생 하시겠습니까? 본질적으로 – Slae

+0

, 나는 당신이 30 초 동안 기다려야한다고 생각하고, 현재 MP3 재생을 멈추고, 새로운 파일을로드하고, 새로운 파일을 재생할 필요가 있다고 생각한다. 자세한 내용은 코드에서 수행중인 작업에 따라 달라집니다. 나는 delay()가 작동한다고 생각하고 지연이 끝나면 mp3가 멈추지 않게하고 다음 mp3를로드한다. 그러나 나는 지연() 실행을 차단 생각합니다. 그래서 당신이 다른 것을 동시에하고 싶다면, 다른 일을하는 동안 시간을 ​​추적 할 수 있습니다. 그리고 30 초를 넘으면 다음 mp3의 로딩을 처리합니다. – adrianX

+0

작동하도록했습니다. 고맙습니다 – Slae

관련 문제