![]() |
|
|
|
#1 |
|
I posted a message ("Help with my 1st Tkinter program") a few days ago
complaining that Python did not have any built in basic cross platform sound capability. I was wrong (at least partly). Python comes with some sound playing ability for some platforms. Since no one responded to my post, I assume the capability is not well known so I will post a code snippet from my practice program that demonstrates how I play a sound file with Python on both Windows and Linux. It may save someone else some time. The winsound module lets you play .wav files under windows. The ossaudiodev module in combination with the wave module lets you play ..wav files under Linux (and some other nix's as well). =========================== file='tada.wav' if platform.startswith('win'): from winsound import PlaySound, SND_FILENAME, SND_ASYNC PlaySound(file, SND_FILENAME|SND_ASYNC) elif platform.find('linux')>-1: 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: 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() =============================== Bill Bill Dandreta |
|
|
|
|
#2 |
|
Posts: n/a
|
"Bill Dandreta" <> wrote in message
news:Msved.21689$... > I posted a message ("Help with my 1st Tkinter program") a few days ago > complaining that Python did not have any built in basic cross platform > sound capability. I was wrong (at least partly). Python comes with some > sound playing ability for some platforms. Take a look: http://pymedia.org/ Dmitry/ |
|
|
|
#3 |
|
Posts: n/a
|
Bill Dandreta:
>The winsound module lets you play .wav files under windows. Thank you. You can also create "on the fly" memory-mapped wav files (with wave and mmap modules, I think), and play them. How to use the flag SND_PURGE for WAVs loaded from filename or memory mapped? Bear hugs, Bearophile |
|
|
|
#4 |
|
Posts: n/a
|
just a quick note.... Bill Dandreta <> writes: > I posted a message ("Help with my 1st Tkinter program") a few days ago > complaining that Python did not have any built in basic cross platform > sound capability. I was wrong (at least partly). Python comes with > some sound playing ability for some platforms. I remember that somebody has implemented Python bindings for the portaudio library, which is a cross-platform library for real-time audio. Johannes |
|