audiodev.py: Mac port.

Audio_mac.py: Mac specific class for audiodev.py.
aifc.py: open files for reading/writing in binary mode ('rb', 'wb').
This commit is contained in:
Guido van Rossum 1994-09-16 10:55:53 +00:00
parent 2d16703d65
commit e174c1500f
2 changed files with 26 additions and 3 deletions

View File

@ -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 = '???'

View File

@ -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()