> **Источник:** https://python-all.ru/2.7/library/al.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 39.1. [`al`](https://python-all.ru/2.7/library/al.html#module-al) – Аудиофункции на SGI

Устарело с версии 2.6: Модуль [`al`](https://python-all.ru/2.7/library/al.html#module-al) удалён в Python 3.

Этот модуль предоставляет доступ к аудиовозможностям рабочих станций SGI Indy и Indigo. Подробности см. в разделе 3A справочных страниц IRIX. Чтобы понять, что делают эти функции, необходимо прочитать эти страницы! Некоторые функции недоступны в версиях IRIX до 4.0.5. Опять же, обратитесь к руководству, чтобы проверить, доступна ли конкретная функция на вашей платформе.

Все функции и методы, определённые в этом модуле, эквивалентны функциям C с префиксом `AL` в их имени.

Символические константы из заголовочного файла C `<audio.h>` определены в стандартном модуле [`AL`](https://python-all.ru/2.7/library/al.html#module-AL), см. ниже.

> **Предупреждение**
>
> Текущая версия аудиобиблиотеки может аварийно завершиться с дампом ядра при передаче неверных значений аргументов вместо возврата кода ошибки. К сожалению, поскольку точные обстоятельства, при которых это может произойти, не документированы и их трудно проверить, интерфейс Python не может обеспечить защиту от такого рода проблем. (Один из примеров – указание чрезмерного размера очереди; задокументированного верхнего предела нет.)

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

#### `al.openport(name, direction[, config])`

Аргументы name и direction – строки. Необязательный аргумент *конфигурация* – это объект конфигурации, возвращаемый [`newconfig()`](https://python-all.ru/2.7/library/al.html#al.newconfig). Возвращаемое значение – *объект аудиопорта*; методы объектов аудиопорта описаны ниже.

#### `al.newconfig()`

Возвращаемое значение – новый *объект аудиоконфигурации*; методы объектов аудиоконфигурации описаны ниже.

#### `al.queryparams(device)`

Аргумент device – целое число. Возвращаемое значение – список целых чисел, содержащий данные, возвращённые `ALqueryparams()`.

#### `al.getparams(device, list)`

Аргумент *устройство* – целое число. Аргумент list – список, подобный возвращаемому [`queryparams()`](https://python-all.ru/2.7/library/al.html#al.queryparams); он изменяется на месте (!).

#### `al.setparams(device, list)`

Аргумент *устройство* – целое число. Аргумент *список* – список, подобный возвращаемому [`queryparams()`](https://python-all.ru/2.7/library/al.html#al.queryparams).

## 39.1.1. Объекты конфигурации

Объекты конфигурации, возвращаемые [`newconfig()`](https://python-all.ru/2.7/library/al.html#al.newconfig), имеют следующие методы:

#### `audio configuration.getqueuesize()`

Возвращает размер очереди.

#### `audio configuration.setqueuesize(size)`

Устанавливает размер очереди.

#### `audio configuration.getwidth()`

Возвращает ширину семпла.

#### `audio configuration.setwidth(width)`

Устанавливает ширину семпла.

#### `audio configuration.getchannels()`

Возвращает количество каналов.

#### `audio configuration.setchannels(nchannels)`

Устанавливает количество каналов.

#### `audio configuration.getsampfmt()`

Возвращает формат семпла.

#### `audio configuration.setsampfmt(sampfmt)`

Устанавливает формат семпла.

#### `audio configuration.getfloatmax()`

Возвращает максимальное значение для форматов семплов с плавающей точкой.

#### `audio configuration.setfloatmax(floatmax)`

Устанавливает максимальное значение для форматов семплов с плавающей точкой.

## 39.1.2. Объекты портов

Объекты портов, возвращаемые [`openport()`](https://python-all.ru/2.7/library/al.html#al.openport), имеют следующие методы:

#### `audio port.closeport()`

Закрывает порт.

#### `audio port.getfd()`

Возвращает файловый дескриптор в виде int.

#### `audio port.getfilled()`

Возвращает количество заполненных сэмплов.

#### `audio port.getfillable()`

Возвращает количество сэмплов, доступных для заполнения.

#### `audio port.readsamps(nsamples)`

Считывает несколько сэмплов из очереди, при необходимости блокируя выполнение. Возвращает данные в виде строки, содержащей сырые данные (например, 2 байта на сэмпл в порядке byte order big-endian (старший байт, младший байт), если ширина сэмпла установлена равной 2 байтам).

#### `audio port.writesamps(samples)`

Записывает сэмплы в очередь, при необходимости блокируя выполнение. Сэмплы кодируются так, как описано для возвращаемого значения `readsamps()`.

#### `audio port.getfillpoint()`

Возвращает точку заполнения (fill point).

#### `audio port.setfillpoint(fillpoint)`

Устанавливает точку заполнения.

#### `audio port.getconfig()`

Возвращает объект конфигурации, содержащий текущую конфигурацию порта.

#### `audio port.setconfig(config)`

Устанавливает конфигурацию из переданного объекта конфигурации.

#### `audio port.getstatus(list)`

Получает информацию о состоянии последней ошибки.

# 39.2. [`AL`](https://python-all.ru/2.7/library/al.html#module-AL) – Константы, используемые с модулем [`al`](https://python-all.ru/2.7/library/al.html#module-al)

Устарело с версии 2.6: Модуль [`AL`](https://python-all.ru/2.7/library/al.html#module-AL) удалён в Python 3.

Этот модуль определяет символьные константы, необходимые для использования встроенного модуля [`al`](https://python-all.ru/2.7/library/al.html#module-al) (см. выше); они эквивалентны определённым в заголовочном файле C `<audio.h>`, за исключением того, что префикс имени `AL_` опущен. Для получения полного списка определённых имён обратитесь к исходному коду модуля. Рекомендуемое использование:

```python
import al
from AL import *
```
