目标
当用户启动应用程序时,从位置D:1.wav
播放wav文件
研究
看到以下问题:
How would I go about playing an alarm sound in python?
我尝试了什么
我尝试了以下几行:
示例1
import winsound
winsound.PlaySound('D:\1.wav',winsound.SND_FILENAME) ##Did not work
示例2
import winsound
winsound.PlaySound('1.wav',winsound.SND_FILENAME) ##DID not work
我获得默认声音的时间都不是根据音频文件播放的声音
也
winsound.PlaySound('1.wav',winsound.SND_FILENAME)
时,python会检查文件1.wav
吗?在哪个目录?winsound.SND_FILENAME
用于?specs Python 2.7 TKinter 8.5 Windows XP SP
请帮我解决这个问题。
答案 0 :(得分:2)
更改
winsound.PlaySound('D:\1.wav',winsound.SND_FILENAME)
到
winsound.PlaySound('D:\\1.wav',winsound.SND_FILENAME)
防止python逃离你的路径:
>>> a = '\1.wav'
>>> a
'\x01.wav'
winsound.SND_FILENAME
声音参数是WAV文件的名称。不要与SND_ALIAS一起使用。
(来自winsound docs)
如果您还没有使用标志winsound.SND_NODEFAULT
,则winsound会在找不到您指定的文件时播放默认声音。
创建一个文件夹(例如D:\test_sounds\
),其中包含您的wav文件,add that folder到您的PYTHONPATH
变量,然后再次尝试运行您的代码。或者(更好的是,如果您打算分发代码),请按照我刚刚链接的相同帖子,将其添加到您的代码中:
import sys
if "D:\\my_sound_folder" not in sys.path:
sys.path.append("D:\\my_sound_folder")
然后您可以致电winsound.PlaySOund('1.wav', winsound.SND_FILENAME)
,因为它将在您的可用路径中