wave
源代码: Lib/wave.py
这个 wave
模块为wav声音格式提供了方便的接口。它不支持压缩/解压,但支持单声道/立体声。
这个 wave
模块定义以下函数和异常:
- wave.open(file, mode=None)
如果 file 是一个字符串,按该名称打开文件,否则将其视为一个类似于对象的文件。 mode 可以是:
'rb'
只读模式。
'wb'
只写模式。
请注意,它不允许读/写wav文件。
A mode 属于
'rb'
返回AWave_read
对象,而A mode 属于'wb'
返回AWave_write
对象。如果 mode 被省略,一个类似文件的对象作为 file ,file.mode
用作的默认值 mode .如果传入类似文件的对象,则当其
close()
方法;调用方负责关闭文件对象。这个
open()
函数可用于with
语句。当with
块完成后,Wave_read.close()
或Wave_write.close()
方法被调用。在 3.4 版更改: 添加了对不可浏览文件的支持。
波形读取对象
波形读取对象,由返回 open()
,方法如下:
- Wave_read.close()
如果流是由打开的,则将其关闭
wave
,并使实例不可用。这将在对象集合中自动调用。
- Wave_read.getcompname()
人类可读版本
getcomptype()
. 通常'not compressed'
平行线'NONE'
.
- Wave_read.getparams()
返回A
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,相当于get*()
方法。
- Wave_read.readframes(n)
最多读取和返回 n 音频帧,如
bytes
对象。
以下两种方法是为与 aifc
模块,不要做任何有趣的事情。
以下两个方法定义了一个术语“位置”,该术语在它们之间是兼容的,否则依赖于实现。
波形写入对象
对于可查找的输出流, wave
标题将自动更新,以反映实际写入的帧数。对于无法靠近的溪流, n框架 写入第一帧数据时,值必须准确。精确的 n框架 值可以通过调用 setnframes()
或 setparams()
使用之前要写入的帧数 close()
调用然后使用 writeframesraw()
写入帧数据,或通过调用 writeframes()
所有帧数据都要写入。在后一种情况下 writeframes()
将计算数据中的帧数并设置 n框架 因此,在写入帧数据之前。
wave-write对象,由返回 open()
,方法如下:
在 3.4 版更改: 添加了对不可浏览文件的支持。
- Wave_write.close()
确保 n框架 是正确的,如果文件是由
wave
. 对对象集合调用此方法。如果无法找到输出流,它将引发异常,并且 n框架 与实际写入的帧数不匹配。
- Wave_write.setparams(tuple)
这个 元组 应该是
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,其值对set*()
方法。设置所有参数。
- Wave_write.tell()
返回文件中的当前位置,具有相同的免责声明
Wave_read.tell()
和Wave_read.setpos()
方法。
- Wave_write.writeframesraw(data)
编写音频帧,不更正 n框架 .
在 3.4 版更改: 任何 bytes-like object 现在被接受。
- Wave_write.writeframes(data)
编写音频帧并确保 n框架 是正确的。如果输出流不可查找,并且之后写入的帧总数大于 data 已写入与以前设置的值不匹配 n框架 .
在 3.4 版更改: 任何 bytes-like object 现在被接受。
请注意,在调用后设置任何参数都是无效的 writeframes()
或 writeframesraw()
任何这样做的尝试都会增加 wave.Error
.