– 读取和写入Sun AU文件 – 多媒体服务(Python教程)(参考资料)
sunau
– 读取和写入Sun AU文件
源代码: Lib / sunau.py
sunau
模块为Sun AU声音格式提供了方便的界面。请注意,此模块与模块aifc
和wave
.
字段 | 内容 |
---|---|
魔术字 | 四个字节.snd . |
标题大小 | 标题的大小,包括信息,以字节为单位. |
数据大小 | 数据的物理大小,以字节为单位. |
coding | 表示如何音频样本编码. |
采样率 | 采样率 |
渠道数量 | 样品中的通道数量 |
信息 | ASCII字符串给出了对音频文件的描述(用空字节填充). |
除info字段外,所有头字段的大小均为4个字节。它们都是以big-endian字节顺序编码的32位无符号整数.
sunau
模块定义了以下函数:
sunau.
open
(file, mode)-
如果file是一个字符串,用该名称打开文件,否则将其视为一个类似文件的对象。mode可以是任何
"r"
- 只读模式.
"w"
- 只写模式.
请注意,它不允许读/写文件.
sunau
module定义了以下异常:
- 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模块支持的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头的编码字段的附加已知值,但该模块不支持.
AU_read对象
AU_read对象,由上面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"
和"notcompressed"
.
AU_read.
getparams
()-
返回
namedtuple()
(nchannels, sampwidth,framerate, nframes, comptype, compname)
,相当于get*()
方法的输出
AU_read.
readframes
// (n)-
最多返回n音频帧,如
bytes
宾语。数据将以线性格式返回。如果原始数据是u-LAW格式,则会被转换.
AU_read.
rewind
()-
将文件指针重新转换为音频流的开头.
以下两种方法定义了一个术语“位置”,它与之相容,并且依赖于实现.
AU_read.
setpos
(pos )-
将文件指针设置为指定的位置。只有
tell()
返回的值才能用于pos.
AU_read.
tell
()-
返回当前文件指针位置。请注意,返回的值与文件中的实际位置无关.
为了兼容aifc
,什么也不做有趣的事.
AU_read.
getmarkers
()-
回复
None
.
AU_read.
getmark
(id)-
提出错误
AU_write对象
AU_write对象,如上面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)-
tuple应该
(nchannels, sampwidth, framerate, nframes, comptype,compname)
,价值有效对于set*()
方法。设置所有参数.
AU_write.
tell
( )-
返回文件中的当前位置,与
AU_read.tell()
和AU_read.setpos()
方法相同的免责声明
AU_write.
writeframesraw
// (data)-
写音频框架,无需更正nframes.
更改版本3.4:任何类似字节的对象现在已被接受.
AU_write.
writeframes
(data)-
写入音频帧并确保nframes是正确的.
版本3.4更改:任何字节对象现已被接受.
AU_write.
close
()-
确保nframes是正确的,然后关闭文件.
这个方法在删除时调用.
注意调用writeframes()
或writeframesraw()
.