Odtwarzanie dźwięku za pomocą Pythona [duplicate]
Jak najłatwiej odtworzyć plik dźwiękowy (.wav) w Pythonie? Przez easiest mam na myśli zarówno najbardziej niezależny od platformy, jak i wymagający najmniejszych zależności. pygame jest z pewnością opcją, ale wydaje się przesadą dla samego dźwięku.
3 answers
Zestaw Narzędzi Snack Sound może odtwarzać pliki wav, au i mp3.
s = Sound()
s.read('sound.wav')
s.play()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-21 01:11:05
Dla Windows, można użyć winsound. Jest wbudowany
import winsound
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
Powinieneś móc używać ossaudiodev dla Linuksa:
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()
(kredyt dla ossaudiodev: Bill Dandreta http://mail.python.org/pipermail/python-list/2004-October/288905.html )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-11 14:33:03
Wydaje się to śmieszne i naciągane, ale zawsze możesz użyć systemu Windows (lub dowolnego systemu operacyjnego, który wolisz), aby zarządzać dźwiękiem za Ciebie!
import os
os.system("start C:/thepathyouwant/file")
Prosty, bez rozszerzeń, nieco powolny i ćpunowaty, ale działający.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-05 21:15:12