Pygame.mixer 不会初始化通道单声道与立体声

问题描述

我正在尝试使用 pygame.mixer 在两个通道上播放单声道声音。

但是,设置 channels = 1 对我不起作用。好像没有拿我给 init 函数的值。

我尝试了几种组合:

import pygame as pg

def setupAudio(self):
    print("Test")
    pg.mixer.quit()
    pg.mixer.init(self.fs,-16,1)
    print(pg.mixer.get_init())
import pygame as pg

def setupAudio(self):
    print("Test")
    pg.mixer.quit()
    pg.mixer.pre_init(frequency = self.fs,channels = 1)
    pg.mixer.init(self.fs,1)
    pg.init()
    print(pg.mixer.get_init())

对于我打印的所有结果:

测试 (44100,2)

我什至尝试放入 channel = 4,这不会给我带来任何错误/返回(我认为,因为这不是有效输入)。

谁能帮帮我,我是不是没看到什么?

解决方法

该实现显然不支持 channels=1(或 channels=4),因此它会更改以匹配该实现可以直接处理的内容。

要强制使用您想要的参数并让其他人在后台为您进行转换,您可以设置allowedchanges=0

pg.mixer.pre_init(frequency = self.fs,channels = 1,allowedchanges=0)

或者,如果您想保留 frequency 的自动更改,您可以改用 allowedchanges=pg.AUDIO_ALLOW_FREQUENCY_CHANGE

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...