wave
多媒体服务
源代码: Lib/wave.py
The wave module provides a convenient interface to the Waveform Audio “WAVE” (or “WAV”) file format. Only uncompressed PCM encoded wave files are supported.
Changed in version 3.12: 支持 WAVE_FORMAT_EXTENSIBLE headers was added, provided that the extended format is KSDATAFORMAT_SUBTYPE_PCM .
WAVE_FORMAT_EXTENSIBLE
KSDATAFORMAT_SUBTYPE_PCM
The wave 模块定义了以下函数和异常:
若 file 是字符串,按该名称打开文件,否则将其视为像文件对象。 mode 可以是:
'rb'
只读模式。
'wb'
只写模式。
注意:它不允许读/写 WAV 文件。
A mode of 'rb' 返回 Wave_read 对象,而 mode of 'wb' 返回 Wave_write 对象。若 mode 被省略且像文件对象被传递作为 file , file.mode 被用作默认值对于 mode .
Wave_read
Wave_write
file.mode
若传入像文件对象,wave 对象将不关闭它当它的 close() 方法被调用;关闭文件对象是调用者的责任。
close()
The open() 函数可以用于 with 语句。当 with 阻塞完成, Wave_read.close() or Wave_write.close() 方法被调用。
open()
with
Wave_read.close()
Wave_write.close()
3.4 版改变: 添加支持不可寻址文件。
错误被引发,当某些东西因违反 WAV 规范或命中实现缺陷而不可实现时。
Read a WAV file.
Wave_read 对象,如返回通过 open() ,拥有下列方法:
关闭流若它被打开通过 wave ,并使实例不可用。这是在对象集合上自动调用的。
返回音频通道数 ( 1 为单声道, 2 为立体声)。
1
2
返回采样宽度,以字节为单位。
返回采样频率。
返回音频帧数。
返回压缩类型 ( 'NONE' 是唯一支持的类型)。
'NONE'
人性化可读版本的 getcomptype() 。通常 'not compressed' 平行 'NONE' .
getcomptype()
'not compressed'
返回 namedtuple() (nchannels, sampwidth, framerate, nframes, comptype, compname) ,相当于输出对于 get*() 方法。
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
get*()
读取并返回最多 n 帧的音频,作为 bytes 对象。
bytes
将文件指针倒带到音频流的开头。
定义以下 2 方法是为了兼容 aifc 模块,且不会做任何有趣的事情。
aifc
返回 None .
None
引发错误。
以下 2 种法定义了在它们之间兼容的 position 术语,否则从属实现。
将文件指针设置到指定位置。
返回当前文件指针位置。
Write a WAV file.
Wave_write 对象,如返回通过 open() .
对于可寻址输出流, wave 头会自动更新以反映实际写入的帧数。对于不可寻址流, nframes 值必须精确,当写入第一帧数据时。精确的 nframes 值可以达成通过调用 setnframes() or setparams() 采用将要写入的帧数先于 close() 被调用然后使用 writeframesraw() 以写入帧数据,或通过调用 writeframes() 采用要写入的所有帧数据。在后一种情况下, writeframes() 将计算数据中的帧数并设置 nframes 故此,在写入帧数据之前。
setnframes()
setparams()
writeframesraw()
writeframes()
Wave_write objects have the following methods:
确保 nframes 正确,并关闭文件若它的打开是通过 wave 。此方法被调用当收集对象时。它会引发异常,若输出流不可寻址且 nframes 不匹配实际写入帧数。
设置通道数。
将采样宽度设为 n 字节。
将帧速率设为 n .
3.2 版改变: 此方法的非整型输入,会被舍入到最近整数。
将帧数设为 n 。这稍后会改变,若实际写入帧数不同 (此更新尝试会引发错误,若输出流不可寻址)。
设置压缩类型和描述。目前,仅压缩类型 NONE 受支持,意味着不压缩。
NONE
The tuple 应该为 (nchannels, sampwidth, framerate, nframes, comptype, compname) ,具有有效值对于 set*() 方法。设置所有参数。
set*()
返回文件的当前位置,具有相同免责声明对于 Wave_read.tell() and Wave_read.setpos() 方法。
Wave_read.tell()
Wave_read.setpos()
写入音频帧,不校正 nframes .
3.4 版改变: 任何 像字节对象 现接受。
写入音频帧并确保 nframes 是正确的。它将引发错误,若输出流不可寻址且已写入帧总数之前 data 已写入不匹配的先前设置值对于 nframes .
注意:设置任何参数无效,之前有调用 writeframes() or writeframesraw() ,且任何试图这样做会引发 wave.Error .
wave.Error
colorsys — 在颜色系统之间转换
colorsys
键入搜索术语或模块、类、函数名称。