From: Guido van Rossum Date: Sun, 8 Oct 2000 00:20:20 +0000 (+0000) Subject: It seems our sound cards can't play mulaw data. Use native-format X-Git-Tag: v2.0c1~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=923ebe4dc6535cbf3ecf264af70a5b49dfb7223a;p=python 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 535f84c2ea..7924a24e32 100644 --- a/Lib/test/test_linuxaudiodev.py +++ b/Lib/test/test_linuxaudiodev.py @@ -4,9 +4,11 @@ import errno 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 @@ def play_sound_file(path): 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 @@ def play_sound_file(path): 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()