播放声音时出错
我正在尝试制作一个闹钟之类的东西,但当我运行我正在使用的代码时,出现了这个错误:
File "C:\Python27\Salty.py", line 2, in <module>
winsound.PlaySound('siren.wav')
TypeError: PlaySound() takes exactly 2 arguments (1 given)
这是我正在运行的代码:
import winsound
winsound.PlaySound('siren.wav')
我知道这可能是个简单的错误,但现在很晚了。谢谢你的帮助!
1 个回答
2
winsound.PlaySound
这个函数需要两个参数:sound
和 flags
。sound
可以是一个文件名、音频数据的字符串,或者是
None
(来自文档),而 flags
是一些选项的组合,比如 winsound.SND_FILENAME
(表示 sound
参数是一个 .wav
文件的路径),winsound.SND_ALIAS
(表示 sound
参数是一个内置的Windows声音的名称,具体可以查看文档),winsound.SND_LOOP
(表示循环播放声音),winsound.SND_MEMORY
(表示 sound
参数是一个 .wav
文件的内存图像),winsound.SND_PURGE
(停止所有正在播放的指定声音,在现代Windows上不支持),winsound.SND_ASYNC
(立即返回,允许声音异步播放),winsound.SND_NODEFAULT
(如果找不到声音,则不播放默认声音),winsound.SND_NOSTOP
(不打断当前正在播放的其他声音),以及 winsound.SND_NOWAIT
(如果声音驱动程序忙,则立即返回)
你需要的是 winsound.SND_FILENAME
这个选项:
import winsound
winsound.PlaySound('siren.wav', winsound.SND_FILENAME)
或者,可以用一个函数来表示:
import winsound
def playSiren():
winsound.PlaySound('siren.wav', winsound.SND_FILENAME)
补充说明:
可能需要提供完整的路径(例如 'C:\\whatever\\siren.wav'
),而不仅仅是文件名(正如评论中讨论的那样)。