It seems our sound cards can't play mulaw data. Use native-format
16-bit signed data instead. Hope this works for you; it works for me.
diff --git a/Lib/test/test_linuxaudiodev.py b/Lib/test/test_linuxaudiodev.py
index 535f84c..7924a24 100644
--- a/Lib/test/test_linuxaudiodev.py
+++ b/Lib/test/test_linuxaudiodev.py
@@ -4,9 +4,11 @@
import fcntl
import linuxaudiodev
import os
+import sys
import select
import sunaudio
import time
+import audioop
SND_FORMAT_MULAW_8 = 1
@@ -27,6 +29,15 @@
raise TestSkipped, msg
raise TestFailed, msg
+ # convert the data to 16-bit signed
+ data = audioop.ulaw2lin(data, 2)
+
+ # set the data format
+ if sys.byteorder == 'little':
+ fmt = linuxaudiodev.AFMT_S16_LE
+ else:
+ fmt = linuxaudiodev.AFMT_S16_BE
+
# at least check that these methods can be invoked
a.bufsize()
a.obufcount()
@@ -35,7 +46,7 @@
a.fileno()
# set parameters based on .au file headers
- a.setparameters(rate, 8, nchannels, linuxaudiodev.AFMT_MU_LAW, 1)
+ a.setparameters(rate, 16, nchannels, fmt)
a.write(data)
a.flush()
a.close()