summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/aifc.py4
-rw-r--r--Lib/audiodev.py25
2 files changed, 26 insertions, 3 deletions
diff --git a/Lib/aifc.py b/Lib/aifc.py
index a9e6f85..22bff01 100644
--- a/Lib/aifc.py
+++ b/Lib/aifc.py
@@ -413,7 +413,7 @@ class Aifc_read:
def __init__(self, f):
if type(f) == type(''):
- f = __builtin__.open(f, 'r')
+ f = __builtin__.open(f, 'rb')
# else, assume it is an open file object already
self.initfp(f)
@@ -638,7 +638,7 @@ class Aifc_write:
def __init__(self, f):
if type(f) == type(''):
filename = f
- f = __builtin__.open(f, 'w')
+ f = __builtin__.open(f, 'wb')
else:
# else, assume it is an open file object already
filename = '???'
diff --git a/Lib/audiodev.py b/Lib/audiodev.py
index 02d63f7..adfeb96 100644
--- a/Lib/audiodev.py
+++ b/Lib/audiodev.py
@@ -215,4 +215,27 @@ def AudioDev():
import sunaudiodev
return Play_Audio_sun()
except ImportError:
- raise error, 'no audio device'
+ try:
+ import Audio_mac
+ return Audio_mac.Play_Audio_mac()
+ except ImportError:
+ raise error, 'no audio device'
+
+def test(fn = 'f:just samples:just.aif'):
+ import aifc
+ af = aifc.open(fn, 'r')
+ print fn, af.getparams()
+ p = AudioDev()
+ p.setoutrate(af.getframerate())
+ p.setsampwidth(af.getsampwidth())
+ p.setnchannels(af.getnchannels())
+ BUFSIZ = af.getframerate()/af.getsampwidth()/af.getnchannels()
+ while 1:
+ data = af.readframes(BUFSIZ)
+ if not data: break
+ print len(data)
+ p.writeframes(data)
+ p.wait()
+
+if __name__ == '__main__':
+ test()