2014-12-07 1 views
0

저는 게임 배경으로 음악 파일을 재생하기위한 작은 코드를 작성하려고합니다. 내가 건너오고있는 문제는 모든 코드가 배치되고 올바르게 표현되었지만 사운드 파일이 재생되지 않는다는 것입니다. 코드에 여러 개의 print 문을 넣었습니다. 사운드 파일이로드되지 않았거나로드 된 후에 단순히 재생되지 않는다고 제안하는 것 같습니다.이 파이 게임에서 사운드 파일이 재생되는 것을 방해하는 것은 무엇입니까? 믹서가 설정 되었습니까?

import pygame 
def musicPlayer(): 
    print "Playing music now" 
    pygame.init() 
    pygame.mixer.music.load('01ANightOfDizzySpells.mp3') 
    print "load song1" 
    pygame.mixer.music.play(loops=0, start=0.0) 
    print "play song1" 
    pygame.mixer.music.queue('01HHavok-intro.mp3') 
    pygame.mixer.music.queue('02HHavok-main.mp3') 
    pygame.mixer.music.queue('02Underclockedunderunderclockedmix.mp3') 
    pygame.mixer.music.queue('03ChibiNinja.mp3') 
    pygame.mixer.music.queue('04AllofUs.mp3') 
    pygame.mixer.music.queue('05ComeandFindMe.mp3') 
    pygame.mixer.music.queue('06Searching.mp3') 
    pygame.mixer.music.queue('07WeretheResistors.mp3') 
    pygame.mixer.music.queue('08Ascending.mp3') 
    pygame.mixer.music.queue('09ComeandFindMe-Bmix.mp3') 
    pygame.mixer.music.queue('10Arpanauts.mp3') 
    pygame.mixer.music.queue('DigitalNative.mp3') 
    pygame.mixer.music.set_endevent() 
    #musicPlayer() 
musicPlayer() 

나는 뭔가를 놓치고 있습니까? 아니면 코드가 아니라 내 컴퓨터와 관련이있을 수 있습니까?

편집 : 이것은 당신이 오류가 발생하지 않습니다 볼 수 있듯이 코드를

Playing music now 
load song1 
play song1 

를 실행의 출력입니다.

+1

어쩌면 파일. 다른 파일로 시도 했습니까? –

+0

그래, 그걸 시도 했어. 같은 출력. 나는 코드가 소리라고 가정한다고 가정하겠습니다. –

답변

0

나는 pygame과 그 방법에 익숙하지 않지만 내 생각에 파일을 올바르게 찾을 수 없거나 찾은 파일을 올바르게 처리 할 수 ​​없다는 것입니다.

나는 그것이 도움이되는지 확인하기 위해 오디오 파일의 전체 경로를 지정하는 것이 좋습니다. 그것은 파일을 제대로 찾지 못하는 문제를 배제 할 것입니다 (). 프로그램의 조직 구조에 대한 변경으로 인해 해당 경로가 깨질 가능성이 있으므로이 하드 코딩은 장기적으로 좋은 아이디어는 아닙니다.).

설명서에 따르면 MP3 지원은 제한적입니다. .ogg 파일을 (http://www.pygame.org/docs/ref/music.html) 대신 사용해보십시오. 인코딩이 완벽하게 지원되지 않는 문제 일 수 있습니다.

+0

나는 ogg로 바꾸려고 노력했지만 거의 차이가 없었다. 그러나 f.rodrigues는 나에게 도움이 된 몇 가지 변화를주었습니다. MP3는 확실히 문제였습니다. –

+0

다행 이네요. – Nwilson

2

내가 중간 파일과 코드를했는데, 그것은 잘 작동하지만 일부 조정이있다 : 스크립트가 종료

import pygame 

def musicPlayer(): 
    pygame.init() 
    pygame.mixer.music.load('test.mid') 
    print "load song1" 
    pygame.mixer.music.play() 
    print "play song1" 
    pygame.mixer.music.queue('test_2.mid') 

musicPlayer() 
while pygame.mixer.music.get_busy(): 
    pygame.time.Clock().tick(10) 
print "DONE" 

경우 재생이 그것에 대해 당신은()에서 get_busy 필요, 무슨 일이 생긴되지 않습니다 while 루프.

pygame.music 설명서에 : MP3 지원이 제한된다는 것을 알고 있어야합니다. [...] OGG를 대신 사용해보십시오.


Sound 클래스로 약간 연주했습니다.

는 여기에 내가 와서 무엇을 :

import pygame 

def musicPlayer(): 
    pygame.mixer.init() 
    channel = pygame.mixer.Channel(1) 
    sound = pygame.mixer.Sound('test.ogg') 
    channel.play(sound) 

musicPlayer() 
while pygame.mixer.get_busy(): 
    pygame.time.Clock().tick(10) 
print "DONE" 
+0

감사합니다. 나는 당신의 편집을 시도했고 잘 작동했다. 출력에서 코드가 잘 돌아가고있는 것처럼 보입니다. 그러나 출력으로 여전히 소리가 없습니다! MP3로 작업하는 것을 여전히 거부했지만, 오그 변환은 일종의 작업을 수행했습니다. 코드가 실행되었지만 소리가 들리지 않습니다. 그러나 나는 출력물로 어떤 것이 작동하는지 알 수 있었다. 그것은 오그 일 수 있을까? –

+0

나 자신을 테스트 할 수있는 파일만으로는 알 수 없다. 몇 가지 mp3 파일을 시도했지만 몇 가지 문제가 발생했습니다. 수정 방법을 잘 모르겠습니다. midi 파일은 항상 작동하는 것 같습니다. –

+0

믹서를 시도해 보셨습니까 .Sound class? http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.사운드 –

관련 문제