我使用的是Windows7上的64位PyAudio版本here。当我导入pyaudio并执行pyaudio.PyAudio()
时,它工作得很好,但是大量似乎是调试的信息被打印到stderr。在Stackoverflow上有一个关于这个here的问题,但它已经有一年多没有活动了,似乎还没有解决。在
正如这个问题的提问者在对答案的答复中所指出的,重定向stderr(通过执行sys.stderr = somethingelse
)并不会阻止错误消息发送到stderr。即使有,我也不想为了处理PyAudio而重定向所有stderr。在
我怀疑问题是,这个PyAudio和/或它附带的PortAudio编译时使用了某种调试标志,导致调试信息在C扩展代码中的某个地方以“原始”的形式打印出来,绕过了Python IO流。所以我要问的是:
(如果只是这个版本的问题,我可能会尝试联系提供这些64位版本的人,询问他是否有意提供调试版本,因为有可能他只是在编译时忘了关闭调试。)
编辑:以下是我收到的消息。我试着把它们压缩一点,因为它们有几百行长。我还应该注意到,这些消息看起来不像是错误消息;它们只是关于各种设备的状态消息。我首先得到:
before paHostApiInitializers[0].
after paHostApiInitializers[0].
before paHostApiInitializers[1].
WASAPI: device idx: 00
WASAPI: ---------------
WASAPI:0| name[Realtek Digital Output (Realtek High Definition Audio)]
WASAPI:0| form-factor[8]
WASAPI:0| def.SR[48000] max.CH[2] latency{hi[0.010000] lo[0.003000]}
WASAPI: device idx: 01
然后是一系列类似的消息,从WASAPI开始,提到其他设备(线路输入、麦克风等)。然后:
^{pr2}$。还有一堆关于“Enum called”和“capture alias”等类似的消息。然后:
Interfaces found: 7
Device 1 has render alias
Device 1 has capture alias
Interface 1, Name: ATI HD Audio rear output
Creating pin 0:
No standard streaming
Creating pin 1:
Not source/sink
Filter NOT created
。以及其他设备号的一系列类似的消息块。最后:
after paHostApiInitializers[2].
这就是我在做pyaudio.PyAudio()
时看到的。在
目前没有回答
相关问题 更多 >
编程相关推荐