2014-12-28 3 views
1

Если я бегуПочему pygame.mixer.init не изменяет частоту дискретизации?

import pygame 

pygame.mixer.pre_init(44100, -16,2,2048) 
pygame.init() 
print pygame.mixer.get_init() 

или

import pygame 

pygame.init() 
pygame.mixer.init(44100, -16,2,2048) 
print pygame.mixer.get_init() 

или

import pygame 

pygame.mixer.init(44100, -16,2,2048) 
print pygame.mixer.get_init() 

В результате получается: (22050, -16, 2)

вместо (44100, -16,2)

Почему? Что я делаю не так?

ответ

0

Наиболее вероятным объяснением является то, что pygame.init() инициализирует mixer модуль со значением по умолчанию, которое (22050, -16, 2), если только pre_init() не найдено.

И первая и третья части кода работают для меня, и дают выход, (44100, -16,2).

0

Похоже, что значения, заданные pygame.mixer.init(), являются «липкими», даже если один раз называет init(). Вызов pygame.mixer.quit() до pygame.mixer.init() снова заставляет это работать для меня:

>>> import pygame 
>>> pygame.mixer.init() 
>>> print(pygame.mixer.get_init()) 
(22050, -16, 2) 

>>> # the following will essentially be ignored 
>>> pygame.mixer.init(44100, -16, 2) 
>>> print(pygame.mixer.get_init()) 
(22050, -16, 2) 

>>> # calling quit() allows new parameters to be set 
>>> pygame.mixer.quit() 
>>> pygame.mixer.init(44100, -16, 2) 
>>> print(pygame.mixer.get_init()) 
(44100, -16, 2) 
Смежные вопросы