使用winsound.PlaySound最小化两个声音之间的延迟

时间:2016-08-19 07:58:42

标签: python

winsound.PlaySound('1.wav', winsound.SND_FILENAME)
time.sleep(0.15)
winsound.PlaySound('1.wav', winsound.SND_FILENAME)

1.wav是一个长度为01s的声音文件

即使winsound.PlaySound被注释掉,两个time.sleep来电之间也会有超过一秒的延迟。但是,如果time.sleep的参数增加超过1s,那么我的代码将按预期运行。

我需要将延迟降低到0.15s

提前致谢。

1 个答案:

答案 0 :(得分:1)

winsound模块似乎不受欢迎。它没有适应Python 3区分字节和字符串(http://bugs.python.org/issue11620),所以它不能播放存储在内存中的.wav文件。

您应该转移到其他音频模块,例如pyaudio https://people.csail.mit.edu/hubert/pyaudio/

由于文件很短。您应该将整个文件读入内存。如果仍有间隙,您可以将文件加入到自身中间,然后播放0.15秒的静音,然后播放(该单个文件)。音频模块wavepydubaudioopaudiolab可以进行加入。 How to join two wav files using python?