wave (Multimedia) - Python 中文开发手册
源代码: Lib / wave.py
该wave模块为WAV声音格式提供了一个方便的界面。它不支持压缩/解压缩,但它支持单声道/立体声。
该wave模块定义了以下功能和异常:
wave.open(file[, mode])
如果file是一个字符串,则按该名称打开该文件,否则将其视为可搜索的文件类对象。模式可以是任何
'r', 'rb'只读模式。'w', 'wb'只写模式。
请注意,它不允许读/写WAV文件。
甲模式的'r'或'rb'返回一个Wave_read对象,而一个模式的'w'或'wb'返回一个Wave_write对象。如果省略模式并将文件类对象作为文件传递,file.mode则将其用作模式的默认值('b'如果需要,还会添加该标志)。
如果你传入一个类似文件的对象,当它的close()方法被调用时,wave对象不会关闭它; 关闭文件对象是调用者的责任。
wave.openfp(file, mode)
open()保持向后兼容性的同义词。
exception wave.Error
当某件事情不可能发生时会引发错误,因为它违反了WAV规范或触及实施缺陷。
1. Wave_read对象
返回的Wave_read对象open()具有以下方法:
Wave_read.close()
如果流被打开wave,请关闭流,并使实例无法使用。这是在对象收集时自动调用的。
Wave_read.getnchannels()
返回音频通道数(1单声道,2立体声)。
Wave_read.getsampwidth()
以字节为单位返回采样宽度
Wave_read.getframerate()
返回采样频率。
Wave_read.getnframes()
返回音频帧的数量。
Wave_read.getcomptype()
返回压缩类型('NONE'是唯一受支持的类型)。
Wave_read.getcompname()
人类可读的版本getcomptype()。通常'not compressed'平行'NONE'。
Wave_read.getparams()
返回一个元组(nchannels, sampwidth, framerate, nframes, comptype, compname),等价于get*()方法的输出。
Wave_read.readframes(n)
最多可读取n帧音频,并以一串字节的形式进行读取和返回。
Wave_read.rewind()
将文件指针倒回到音频流的开头。
为了与aifc模块兼容定义以下两种方法,并且不要做任何有趣的事情。
Wave_read.getmarkers()
返回None。
Wave_read.getmark(id)
引发错误。
以下两种方法定义了它们之间兼容的术语“位置”,并且在其他方面与实施相关。
Wave_read.setpos(pos)
将文件指针设置为指定的位置。
Wave_read.tell()
返回当前文件指针位置。
2. Wave_write对象
返回的Wave_write对象open()具有以下方法:
Wave_write.close()
确保nframes是正确的,并关闭文件,如果它被打开wave。这个方法在对象收集时被调用。
Wave_write.setnchannels(n)
设置通道数量。
Wave_write.setsampwidth(n)
将示例宽度设置为n个字节。
Wave_write.setframerate(n)
将帧速率设置为n。
Wave_write.setnframes(n)
将帧数设置为n。如果写入更多的帧,这将稍后更改。
Wave_write.setcomptype(type, name)
设置压缩类型和说明。目前,只NONE支持压缩类型,意味着不压缩。
Wave_write.setparams(tuple)
的元组应该是(nchannels, sampwidth, framerate, nframes, comptype, compname),凭有效的值set*()的方法。设置所有参数。
Wave_write.tell()
返回文件中的当前位置,对于Wave_read.tell()和Wave_read.setpos()方法使用相同的免责声明。
Wave_write.writeframesraw(data)
编写音频帧,而不更正nframes。
Wave_write.writeframes(data)
写音频帧并确保nframes是正确的。
请注意,在调用writeframes()或之后设置任何参数都是无效的writeframesraw(),并且任何尝试都会引发wave.Error。
Python 中文开发手册