2010-12-01 5 views
3

나는 우분투 10.4를 사용하고 있고 튜토리얼 '침팬지를 Pummel하고 $$$에서 이기기'에 따라 PyGame을 배우고 있습니다.PyGame에서 소리가 짧음

두 개의 '.wav'파일을 만들었지 만 재생하려고 할 때 아주 이상한 소리가납니다.

오류 메시지가 표시되지 않습니다. 왜 예상대로 작동하지 않습니까?

>>> import pygame 
>>> pygame.init() 
(6, 0) 
>>> def load_sound(name): 
    class NoneSound(object): 
     def play(self): pass 
    if not pygame.mixer: 
     return NoneSound() 
    fullname = os.path.join('data', name) 
    try: 
     sound = pygame.mixer.Sound(fullname) 
    except pygame.error, message: 
     print 'Cannot load sound:', name 
     raise SystemExit, message 
    return sound 

>>> whiff_sound = load_sound('whiff.wav') 
>>> whiff_sound.play() 
<Channel object at 0xb772f1c0> 
>>> 

Here is the wav i'm using. (깨진 링크)

+0

독립형 오디오 플레이어로 .wav 파일을 재생 했습니까? – nmichaels

+0

코드를 포함하면 도움을받을 가능성이 더 큽니다. – Velociraptors

+0

@nathon 예, 괜찮습니다. – Ant

답변

2

나는 소리와 같은 문제가 있었는데 WavePad Sound Editor라는 프로그램에서 내 소리를 연 다음 .wav 파일로 다시 저장하고 샘플 속도를 22050 Hz로 설정하여 내 문제를 해결했습니다.

+0

그것은 윈도우에만, 불행히도 .. 다른 하나 시도하고 업데이 트됩니다;) – Ant

+0

고마워, 그것도 잘 작동! – Ant

3

내 첫번째 생각은이 샘플링 주파수 문제처럼 들리는 것이 었습니다. 혼합기가 개시 될 때마다 디폴트 값 :

pygame.mixer.init (주파수 = 22,050, 크기 = -16, 채널 = 2 버퍼 = 4096) 없음 리턴

샘플링 주파수 인 주파수 = 22050이 사운드의 샘플링 주파수와 다른 경우 문제가 발생할 수 있습니다 (기본적으로 사운드 재생 속도가 빨라지거나 느려집니다).

그러나, pygame.mixer.Sound에 대한 설명서를 읽

제한 리샘플링이 샘플이 믹서에 대한 인수를 초기화 일치하기 위해 을 수행 할 것입니다.

이러한 종류의 문제가 자체적으로 해결한다 제안

...

하지만이 내기를는 믹서 객체의 (샘플링) 주파수를 변경하거나 고정 될 수있는 샘플링 주파수 문제 사운드 파일의 샘플링 주파수, 믹서 값과 일치하도록 사운드 파일을 직접 샘플링하십시오.

희망이 도움이됩니다.

+0

나는 wave.getframerate를 사용하여 파일의 샘플링 빈도를 확인 했으므로 22050을 반환하므로 괜찮습니까? – Ant

+0

@Ant, 죄송합니다! 나는 이것이 정말로 이것이라고 생각했습니다. 오디오로 많은 일을한다고 말할 수는 있지만, 파이 게임에 대한 나의 경험은 제한적입니다. 나는 브레인 웨이브가 있다면 당신에게 돌아갈거야 : P – William

+0

좋아, 고마워 ... 내가 파이 게임을 다시 설치해야한다고 생각하니? 사실 나는 우분투에서 뭔가를 바꿀지도 모릅니다. 감사합니다 – Ant

2

주파수를 조정하는 데 아무런 운이 없었지만 mixer.init() 호출시 size = 8로 설정하고 buffer = 2048로 설정했습니다.

관련 문제