1

如果我跑

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)

为什么?我究竟做错了什么?

4

2 回答 2

0

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

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

于 2014-12-30T05:44:37.793 回答
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)
于 2017-08-26T12:07:44.990 回答