2013-04-05 31 views
3

目標在Python的Tkinter從特定位置播放聲音

從位置D:1.wav,當應用程序被用戶

研究

鋸啓動播放wav文件以下問題:

How would I go about playing an alarm sound in python?

Play audio with 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)我得到了默認的聲音的時間,但沒了聲音在哪裏呢蟒蛇檢查該文件1.wav?在哪個目錄中?
  2. 爲什麼標記winsound.SND_FILENAME用於?

規格 Python 2.7版使用TKinter 8.5的Windows XP SP

能幫我解決這個問題。

回答

2

變化

winsound.PlaySound('D:\1.wav',winsound.SND_FILENAME) 

winsound.PlaySound('D:\\1.wav',winsound.SND_FILENAME) 

防止蟒蛇逃跑的路徑:

>>> a = '\1.wav' 
>>> a 
'\x01.wav' 

winsound.SND_FILENAME

聲音參數是WAV文件的名稱。不要與SND_ALIAS一起使用。

(從winsound docs

如果不同時使用標誌winsound.SND_NODEFAULT,廣州市運生播放默認聲音,如果它不能找到你指定的文件。

創建一個文件夾(比如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),因爲它會在你的可用路徑

+0

我知道它說winsound。但我有一個問題(請註明是否太明顯)。我使用winsound。然後我創建一個exe文件,然後將其發送到運行linux的電腦:它會工作嗎?如在意願聲音播放? – IcyFlame 2013-04-11 13:09:27

+1

winsound是唯一的窗口 – 2013-04-11 13:16:48

+0

是啊。我猜想,但只是想確定。我甚至在Linux中運行它,發現它不起作用!不管怎麼說,還是要謝謝你! – IcyFlame 2013-04-11 16:10:04