"""
Usage:
python PlaySound.py input.dcm
"""
import gdcm
import sys
filename = sys.argv[1]
print filename
r.SetFileName( filename )
if not r.Read():
sys.exit(1)
ds = r.GetFile().GetDataSet()
waveformsq = ds.GetDataElement( waveformtag )
items = waveformsq.GetSequenceOfItems()
if not items.GetNumberOfItems():
sys.exit(1)
item = items.GetItem(1)
waveformds = item.GetNestedDataSet()
waveformdatatag =
gdcm.Tag(0x5400,0x1010)
waveformdata = waveformds.GetDataElement( waveformdatatag )
bv = waveformdata.GetByteValue()
print dir(bv)
print bv.GetLength()
l = 116838
file='test.wav'
myfile = open(file, "wb")
s = bv.GetPointer()
for i in range(0, l):
myfile.write(s[i])
myfile.close()
if sys.platform.startswith('win'):
from winsound import PlaySound, SND_FILENAME, SND_ASYNC
PlaySound(file, SND_FILENAME|SND_ASYNC)
elif sys.platform.find('linux')>-1:
from wave import open as waveOpen
from ossaudiodev import open as ossOpen
s = waveOpen(file,'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()