蟒蛇的胜利。哔哔() 暂停问题



所以我的代码是这样的:

import winsound
import time
length = 250
class Notes():
    def frequency(halfNotesFromA4):
        value = 440 * ((2)**(1.0/12.0))**halfNotesFromA4
        return (int)(value)
    def processNote(note):
        if(note == 'C'):return Notes.frequency(3)
        if(note == 'D'):return Notes.frequency(5)
        if(note == 'E'):return Notes.frequency(7)
        if(note == 'F'):return Notes.frequency(8)
        if(note == 'G'):return Notes.frequency(10)
        if(note == 'A'):return Notes.frequency(12)
        if(note == 'B'):return Notes.frequency(14)
song = "EDCDEEE"
noteList = list(song)
print(noteList)
for note in noteList:
    print("Doing ", note)
    frequency = Notes.processNote(note)
    winsound.Beep(frequency, length)

它工作得很好,但我遇到的问题是每次嘟嘟声之间都有一个停顿。我希望能不停顿地连续播放,这样听起来就像真正的音乐。这可能与winsound有关吗。Beep()库?

即使您使用这样的while循环:

 import winsound
 while True:
    winsound.Beep(100, 100)

中间还有一个小停顿,听起来不像是一个实心音符,你不能比快得多

你仍然可以尝试,但我不认为你能让它听起来像一个长嘟嘟声,但winsound确实有winsound.PlaySound(sound, flags),所以你可以在这里加载声音,这是winsound Docs

你可以做的是使用Pygame,这将是更多的工作,但它可能是创建音乐的更好方法

你可以使用Pygame音乐来加载和播放音乐,我相信你可以让它更具互动性,因为你必须从文件中加载每个声音

如果你不想做所有这些,看看Python In Music,那可能是启动的好地方

最新更新