Spec-Zone.ru › Python 2.7

wave — Чтение и запись WAV-файлов

Исходный код: Lib/wave.py

Модуль wave предоставляет удобный интерфейс к формату WAV звука. Он не поддерживает сжатие/распаковку, но поддерживает моно/стерео.

Модуль wave определяет следующие функции и исключение:

wave.open(file[, mode])

Если file — строка, откройте файл с таким именем, в противном случае обработайте его как объект файла, поддерживающий позиционирование. mode может быть любым из

'r', 'rb'

Только чтение.

'w', 'wb'

Только запись.

Обратите внимание, что он не позволяет читать/записывать WAV-файлы.

Значение mode 'r' или 'rb' возвращает объект Wave_read, а значение mode 'w' или 'wb' возвращает объект Wave_write. Если mode опущен, а в качестве file передан объект файла, file.mode используется по умолчанию для mode (флаг 'b' всё ещё добавляется, если необходимо).

Если вы передаете объект файла, объект wave не закроет его, когда будет вызван метод close(); ответственность за закрытие объекта файла лежит на вызывающей стороне.

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)

Кортеж 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.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/wave.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API