sunau
---读写sun au文件¶
源代码: Lib/sunau.py
这个 sunau
模块为Sun AU声音格式提供了一个方便的接口。请注意,此模块与模块的接口兼容。 aifc
和 wave
.
音频文件由数据后面的标题组成。标题字段为:
场 |
目录 |
---|---|
魔术字 |
四字节 |
标题大小 |
头的大小,包括信息,以字节为单位。 |
数据大小 |
数据的物理大小(字节)。 |
编码 |
指示如何对音频样本进行编码。 |
采样率 |
采样率。 |
通道的γ |
样本中的通道数。 |
信息 |
提供音频文件描述的ASCII字符串(用空字节填充)。 |
除了信息字段,所有头字段的大小都是4个字节。它们都是以big-endian字节顺序编码的32位无符号整数。
这个 sunau
模块定义以下功能:
- sunau.open(file, mode)¶
如果 file 是一个字符串,按该名称打开文件,否则将其视为可查找的文件,就像对象一样。 mode 可以是任何
'r'
只读模式。
'w'
只写模式。
注意,它不允许读/写文件。
A mode 属于
'r'
返回一个AU_read
对象,而A mode 属于'w'
或'wb'
返回一个AU_write
对象。
这个 sunau
模块定义以下异常:
- exception sunau.Error¶
由于sun-au规范或实现缺陷而导致某些事情不可能发生时引发的错误。
这个 sunau
模块定义以下数据项:
- sunau.AUDIO_FILE_MAGIC¶
每个有效的sun au文件都以一个整数开头,以big endian格式存储。这是绳子
.snd
解释为整数。
- sunau.AUDIO_FILE_ENCODING_MULAW_8¶
- sunau.AUDIO_FILE_ENCODING_LINEAR_8¶
- sunau.AUDIO_FILE_ENCODING_LINEAR_16¶
- sunau.AUDIO_FILE_ENCODING_LINEAR_24¶
- sunau.AUDIO_FILE_ENCODING_LINEAR_32¶
- sunau.AUDIO_FILE_ENCODING_ALAW_8¶
此模块支持的AU头中的编码字段值。
- sunau.AUDIO_FILE_ENCODING_FLOAT¶
- sunau.AUDIO_FILE_ENCODING_DOUBLE¶
- sunau.AUDIO_FILE_ENCODING_ADPCM_G721¶
- sunau.AUDIO_FILE_ENCODING_ADPCM_G722¶
- sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3¶
- sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5¶
AU头中编码字段的其他已知值,但此模块不支持这些值。
读取对象¶
读取对象,由返回 open()
以上方法如下:
- AU_read.close()¶
关闭流,使实例不可用。(删除时自动调用。)
- AU_read.getnchannels()¶
返回音频通道数(1个用于单声道,2个用于立体声)。
- AU_read.getsampwidth()¶
返回以字节为单位的样本宽度。
- AU_read.getframerate()¶
返回采样频率。
- AU_read.getnframes()¶
返回音频帧数。
- AU_read.getcomptype()¶
返回压缩类型。支持的压缩类型为
'ULAW'
,'ALAW'
和'NONE'
.
- AU_read.getcompname()¶
人类可读版本
getcomptype()
. 支持的类型具有各自的名称'CCITT G.711 u-law'
,'CCITT G.711 A-law'
和'not compressed'
.
- AU_read.getparams()¶
返回A
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,相当于get*()
方法。
- AU_read.rewind()¶
将文件指针倒带到音频流的开头。
以下两个方法定义了一个术语“位置”,该术语在它们之间是兼容的,否则依赖于实现。
- AU_read.tell()¶
返回当前文件指针位置。请注意,返回的值与文件中的实际位置无关。
以下两个函数是为与 aifc
不要做任何有趣的事。
- AU_read.getmarkers()¶
返回
None
.
- AU_read.getmark(id)¶
提出错误。
写对象¶
写入对象,由返回 open()
以上方法如下:
- AU_write.setnchannels(n)¶
设置通道数。
- AU_write.setsampwidth(n)¶
设置样本宽度(字节)。
在 3.4 版更改: 增加了对24位样本的支持。
- AU_write.setframerate(n)¶
设置帧速率。
- AU_write.setnframes(n)¶
设置帧数。如果写入更多帧,可以稍后更改。
- AU_write.setcomptype(type, name)¶
设置压缩类型和描述。只有
'NONE'
和'ULAW'
输出支持。
- AU_write.setparams(tuple)¶
这个 元组 应该是
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,其值对set*()
方法。设置所有参数。
- AU_write.tell()¶
返回文件中的当前位置,具有相同的免责声明
AU_read.tell()
和AU_read.setpos()
方法。
- AU_write.writeframesraw(data)¶
编写音频帧,不更正 n框架 .
在 3.4 版更改: 任何 bytes-like object 现在被接受。
- AU_write.writeframes(data)¶
编写音频帧并确保 n框架 是正确的。
在 3.4 版更改: 任何 bytes-like object 现在被接受。
- AU_write.close()¶
确保 n框架 正确,然后关闭文件。
删除时调用此方法。
请注意,在调用后设置任何参数都是无效的 writeframes()
或 writeframesraw()
.