在Python中播放聲音文件(.wav)的最簡單方法是什麼?最簡單的我是指大多數平臺都是獨立的,並且需要最少的依賴關係。 pygame無疑是一種選擇,但它似乎矯枉過正。用Python播放聲音
回答
The Snack Sound Toolkit可以播放wav,au和mp3文件。
s = Sound()
s.read('sound.wav')
s.play()
pyMedia的聲音示例確實是just that。這應該是你需要的一切。
import time, wave, pymedia.audio.sound as sound
f= wave.open('YOUR FILE NAME', 'rb')
sampleRate= f.getframerate()
channels= f.getnchannels()
format= sound.AFMT_S16_LE
snd= sound.Output(sampleRate, channels, format)
s= f.readframes(300000)
snd.play(s)
呵呵,這工作正常,但小吃的例子佔用更少的代碼行數!我確信pymedia更靈活 – Claudiu 2008-11-22 20:07:56
對於Windows,您可以使用winsound。它的建成在
import winsound
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
您應該能夠使用ossaudiodev對於Linux:
from wave import open as waveOpen
from ossaudiodev import open as ossOpen
s = waveOpen('tada.wav','rb')
(nc,sw,fr,nf,comptype, compname) = s.getparams()
dsp = ossOpen('/dev/dsp','w')
try:
from ossaudiodev import AFMT_S16_NE
except ImportError:
from sys import byteorder
if byteorder == "little":
AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
else:
AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
dsp.setparameters(AFMT_S16_NE, nc, fr)
data = s.readframes(nf)
s.close()
dsp.write(data)
dsp.close()
(貸記ossaudiodev:比爾Dandreta http://mail.python.org/pipermail/python-list/2004-October/288905.html)
我喜歡pygame的,和下面的命令應該工作:
pygame.init()
pygame.mixer.Sound('sound.wav').play()
但它不在我的計算機上rs,並且這方面的幫助很有限。編輯:我想出了爲什麼pygame的聲音不適合我,它不是正確加載大多數聲音,當我加載它時,'length'屬性是〜0.0002。也許用mygame以外的東西來加載它們會更普遍地使用它。
與pyglet我得到一個資源找不到錯誤使用上面的例子,wigh文件的相對路徑和完整路徑。
使用pyglet.media.load()
而不是pyglet.resource.media()
讓我加載文件。
但sound.play()
只播放該文件的第二個的第一部分,除非我運行pyglet.app.run()
阻斷一切......
wxPython中有玩在Windows和Unix WAV文件的支持 - 我不知道這包括Mac電腦。不過,據我所知,它只支持wav文件 - 它不支持其他常用格式,如mp3或ogg。
播放()命令後添加延遲的說10秒左右,它會工作
import pygame
import time
pygame.init()
pygame.mixer.music.load("test.wav")
pygame.mixer.music.play()
time.sleep(10)
這也起到.mp3文件。
我剛剛發佈了一個圍繞sox的簡單python包裝,它將用Python播放聲音。由於您需要Python 2.6或更高版本,sox(易於獲取大多數體系結構的二進制文件)以及封裝(https://github.com/standarddeviant/sound4python),因此安裝非常簡單。如果你沒有襪,去這裏:http://sourceforge.net/projects/sox/files/sox/
你會通過播放音頻與它:
from sound4python import sound
import random
a = []
for idx in xrange(1*16000):
a.append(random.randint(-16384,16384))
sound(a)
請記住,實際參與播放音頻的唯一部件只是這些:
from sound4python import sound
...
sound(a)
對於Linux用戶,如果需要低級別的pcm數據操作,請嘗試alsaaudio模塊。包中也有一個playwav.py的例子。
這看起來很荒謬而且牽強,但您可以隨時使用Windows(或您喜歡的任何操作系統)來爲您管理聲音!
import os
os.system("start C:/thepathyouwant/file")
簡單,沒有擴展,有點緩慢和垃圾,但工作。
- 1. 聲音播放和播放聲音
- 2. 的Python - 播放聲音
- 3. 播放聲音?
- 4. 播放聲音
- 5. 播放聲音
- 6. 播放聲音
- 7. 播放聲音
- 8. 播放聲音
- 9. 使用Pyo在Python中播放聲音
- 10. Python使用pygame播放聲音
- 11. 使用系統聲音播放聲音
- 12. 未播放聲音
- 13. 在播放聲音
- 14. 聲音未播放
- 15. VC++播放聲音
- 16. Ruby聲音播放
- 17. 聲音未播放
- 18. Javascript播放聲音
- 19. MonoTouch:播放聲音
- 20. 聲音播放viewpager
- 21. 播放聲音在
- 22. 用Vue.js播放聲音
- 23. 用JavaScript播放聲音(oninput)
- 24. 用Monotouch播放聲音
- 25. 用AKAudioPlayer播放聲音 - iOS
- 26. 用javascript播放聲音
- 27. 使用SoundPlayer播放聲音
- 28. 用C++播放聲音?
- 29. 使用SoundPool播放聲音
- 30. 使用JavaScript播放聲音
非常類似的問題http://stackoverflow.com/questions/260738/play-audio-with-python。 – 2008-11-20 23:43:09
或者這個:http://stackoverflow.com/questions/276266/whats-a-cross-platform-way-to-play-a-sound-file-in-python – lpfavreau 2008-11-21 01:23:56