不知道这是不是一个欺骗,但我发现到目前为止的职位没有解决我的问题。
前段时间,我写了一个(音乐)metronome for Ubuntu,节拍器是用python3/Gtk
写的
为了重复播放节拍器- tick(录制的声音样本),我使用subprocess.Popen()
播放声音,并将ogg123
用作cli工具:
subprocess.Popen(["ogg123", soundfile])
这个很好用,我可以很容易地跑到每分钟240拍。
在Windows上
我决定在Windows(python3/tkinter/ttk
)上重写这个项目。但是我很难播放声音,以更高的速度重复节拍样本。下一个节拍根本不会开始,而上一个节拍(表面上)还没有完成,播放节拍样本。
在Windows上的python3
中,有没有办法在示例仍在播放时开始播放下一个节拍?
目前,我使用的是winsound
:
winsound.Playsound()
在循环中运行它会出现前面提到的问题。
2条答案
按热度按时间tcomlyy61#
您可以使用pydub进行音频操作,包括重复播放。
下面是一个示例。您可以使用pydub site.中的示例对此进行进一步开发
将上面的
n
更改为所需的数字。xu3bshqb2#
假设你想让音频大于固定长度,比如20000毫秒或20秒,那么你可以简单地重复添加音频