3

目标

D:1.wav在用户启动应用程序时从该位置播放 wav 文件

研究

看到以下问题:

我将如何在 python 中播放警报声?

使用 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

两次我都得到了默认声音,但没有按照音频文件播放的声音

  1. 当我写winsound.PlaySound('1.wav',winsound.SND_FILENAME)python 在哪里检查文件时1.wav?在哪个目录?
  2. 为什么要使用国旗winsound.SND_FILENAME

规格Python 2.7 TKinter 8.5 Windows XP SP

帮我解决这个问题。

4

1 回答 1

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

sound 参数是 WAV 文件的名称。不要与 SND_ALIAS 一起使用。

(来自winsound 文档

如果您不使用 flag winsound.SND_NODEFAULT,则 winsound 会在找不到您指定的文件时播放默认声音。

在里面创建一个D:\test_sounds\包含您的 wav 文件的文件夹(例如),将该文件夹添加到您的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),因为它会在你的可用路径中

于 2013-04-05T10:24:49.683 回答