为什么pygame.mixer.init不会改变采样率?

时间:2014-12-28 10:36:52

标签: python pygame mixer

如果我跑

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)

为什么呢?我做错了什么?

2 个答案:

答案 0 :(得分:0)

最可能的解释是,pygame.init()使用默认值mixer初始化(22050, -16, 2)模块,除非找到pre_init()

第一段和第三段代码对我有用,并提供输出(44100, -16,2)

答案 1 :(得分: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)