⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playaiff.py

📁 reduced python source for embedded apps
💻 PY
字号:
import aiffimport alimport sysimport timedef main():	v = 1	c = al.newconfig()	nchannels = c.getchannels()	nsampframes = 0 # ???	sampwidth = c.getwidth()	samprate = 0.0 # unknown	filename = sys.argv[1]	f = open(filename, 'r')	type, totalsize = aiff.read_chunk_header(f)	if type <> 'FORM':		raise aiff.Error, 'FORM chunk expected at start of file'	aiff.read_form_chunk(f)	while 1:		try:			type, size = aiff.read_chunk_header(f)		except EOFError:			break		if v: print 'header:', `type`, size		if type == 'COMM':			nchannels, nsampframes, sampwidth, samprate = \				aiff.read_comm_chunk(f)			if v: print nchannels, nsampframes, sampwidth, samprate		elif type == 'SSND':			offset, blocksize = aiff.read_ssnd_chunk(f)			if v: print offset, blocksize			data = f.read(size-8)			if size%2: void = f.read(1)			p = makeport(nchannels, sampwidth, samprate)			play(p, data, offset, blocksize)		elif type in aiff.skiplist:			aiff.skip_chunk(f, size)		else:			raise aiff.Error, 'bad chunk type ' + typedef makeport(nchannels, sampwidth, samprate):	c = al.newconfig()	c.setchannels(nchannels)	c.setwidth(sampwidth/8)	# can't set the rate...	p = al.openport('', 'w', c)	return pdef play(p, data, offset, blocksize):	data = data[offset:]	p.writesamps(data)	while p.getfilled() > 0: time.sleep(0.01)main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -