这是我的代码:
导入winsound 从myro进口*
def main():
HftM1 = makeSong("REST 1; REST 1; REST 1; REST 1; REST 1; REST 1; REST 1; REST 1; D4 1/6; F4 1/6; D5 2/3; D4 1/6; F4 1/6; D5 2/3; E5 1/2; F5 1/6; E5 1/6; F5 1/6; E5 1/6; C5 1/6; A4 2/3; A4 1/3; D4 1/3; F4 1/6; G4 1/6; A4 1; A4 1/3; D4 1/3; F4 1/6; G4 1/6; E4 1; D4 1/6; F4 1/6; D5 2/3; E5 1/2; F5 1/6; E5 1/6; F5 1/6; E5 1/6; C5 1/6; A4 2/3; A4 1/3; D4 1/3; F4 1/6; G4 1/6; A4 2/3; A4 1/3; D4 1; REST 1; REST 1; REST 1")
saveSong(HftM1, "WindmillHut.txt", append=1)
song = readSong("WindmillHut.txt")
play = []
for n in range(len(song)):
play = song[n]
note = play[0]
duration = play[1]
winsound.Beep(int(note), int(duration*2000))
main()
当我尝试运行此程序时,我总是收到错误:
^{pr2}$我做错了什么?我需要把它改成什么?请具体点。在
来自the winsound documentation:
的输出迈罗。马克松不是频率列表,而是音符列表。你需要查一下。http://wiki.roboteducation.org/Song_File_Format
在winsound.beep声函数只是windowsapibeep函数的包装。windows函数要求第一个参数(频率)介于37和32767之间。我怀疑任何超出范围的频率都超出了人类的听力范围。也可能是这样,因为旧的声卡,这个功能是为了支持这个范围。在
你在打电话winsound.beep声()和int(注意)返回的值都超出了该范围。你应该在呼叫哔哔声之前检查一下是否有效。在
相关问题 更多 >
编程相关推荐