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

---

# 38.1. `al` – Функции для работы со звуком на SGI

*Платформы:* IRIX

Устарело с версии 2.6: Модуль `al` объявлен устаревшим и будет удалён в Python 3.0.

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

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

Символические константы из заголовочного файла C `<audio.h>` определены в стандартном модуле `AL`, см. ниже.

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

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

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

Аргументы name и direction являются строками. Необязательный аргумент

*config*

– это объект конфигурации, возвращаемый функцией

[`newconfig()`](https://python-all.ru/2.6/library/al.html#al.newconfig)

. Возвращаемое значение –

*объект аудиопорта*

; методы объектов аудиопортов описаны ниже.

#### `al.newconfig()`

Возвращаемое значение – новый

*объект аудиоконфигурации*

; методы объектов аудиоконфигурации описаны ниже.

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

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

`ALqueryparams()`

.

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

Аргумент

*device*

– целое число. Аргумент list – это список, подобный возвращаемому функцией

[`queryparams()`](https://python-all.ru/2.6/library/al.html#al.queryparams)

; он изменяется на месте (!).

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

Аргумент

*device*

– целое число. Аргумент

*list*

– это список, подобный возвращаемому функцией

[`queryparams()`](https://python-all.ru/2.6/library/al.html#al.queryparams)

.

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

Объекты конфигурации, возвращаемые функцией [`newconfig()`](https://python-all.ru/2.6/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)`

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

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

Объекты портов, возвращаемые функцией [`openport()`](https://python-all.ru/2.6/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)`

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

# 38.2. `AL` – Константы, используемые с модулем `al`

*Платформы:* IRIX

Устарело с версии 2.6: Модуль `AL` устарел и будет удалён в Python 3.0.

Этот модуль определяет символические константы, необходимые для использования встроенного модуля `al` (см. выше); они эквивалентны определённым в заголовочном файле C `<audio.h>`, за исключением того, что префикс имени `AL_` опущен. Обратитесь к исходному коду модуля для получения полного списка определённых имён. Рекомендуемое использование:

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