Skip to main content
 首页 » 编程设计

python之使用 fluidsynth 和 mingus 没有声音,除了在 shell 中

2024年10月24日31lovecherry

我正尝试按照 this question 中的建议使用 mingus 在 python 中模拟钢琴.我正在运行 Ubuntu 14.04,并且已经创建了一个音频组并将我自己添加到其中。 我正在使用 alsa。

我运行了上述问题的答案之一中给出的代码,它在 shell 模式下运行良好。但是,当我编写一个 python 脚本并尝试运行它时,我没有听到任何声音。这是我的代码:

#!/usr/bin/env python 
 
from mingus.midi import fluidsynth 
DEF_FONT_PATH = '/usr/share/sounds/sf2/FluidR3_GM.sf2' 
 
def main(): 
    fluidsynth.init(DEF_FONT_PATH, 'alsa') 
    fluidsynth.play_Note(80, 0, 80) 
 
if __name__ == '__main__': 
    main() 

我已经检查了很多其他答案,但似乎找不到解决方案。

请您参考如下方法:

我设法解决了它。

问题似乎是,正如我之前所怀疑的那样,在调用 fluidsynth.init 之后需要等待一段时间。然而,由于简单的 time.sleep() 无法解决这个问题,我放弃了这种可能性。

提示用户提供一些输入以触发音符播放后,声音播放正常。

但是,我仍然不确定为什么需要延迟。