39.1. al — SGI 上的音频Function

自 2.6 版起弃用:al模块已在 Python 3 中删除。

该模块提供对 SGI Indy 和 Indigo 工作站的音频设施的访问。有关详细信息,请参见 IRIX 手册页的 3A 部分。您需要阅读这些手册页,以了解这些Function的作用!在 4.0.5 之前的 IRIX 版本中,某些Function不可用。同样,请参阅手册以检查您的平台上是否有特定Function。

在此模块中定义的所有函数和方法均与带有AL前缀的 C 函数等效。

在标准模块AL中定义了 C 头文件<audio.h>的符号常量,请参见下文。

Warning

当传递了错误的参数值而不是返回错误状态时,当前版本的音频库可能会转储核心。不幸的是,由于这种情况可能发生的确切情况尚无记录且难以检查,因此 Python 接口无法针对此类问题提供保护。 (一个示例指定了过多的队列大小-没有记录的上限.)

该模块定义了以下Function:

  • al. openport(* name direction * [,* config *])

    • 名称和方向参数是字符串。可选的* config 参数是newconfig()返回的配置对象。返回值是一个音频端口对象*;音频端口对象的方法如下所述。
  • al. newconfig ( )

    • 返回值是一个新的* audio 配置对象*;音频配置对象的方法描述如下。
  • al. queryparams(* device *)

    • 设备参数是整数。返回值是包含ALqueryparams()返回的数据的整数列表。
  • al. getparams(* device list *)

      • device *参数是一个整数。 list 参数是一个列表,例如queryparams()返回;它被修改到位(!)。
  • al. setparams(* device list *)

      • device *参数是一个整数。 * list *参数是一个列表,例如queryparams()返回。

39.1.1. 配置对象

newconfig()返回的配置对象具有以下方法:

  • audio configuration.getqueuesize()

    • 返回队列大小。
  • audio configuration.setqueuesize(size)

    • 设置队列大小。
  • audio configuration.getwidth()

    • 获取 samples 宽度。
  • audio configuration.setwidth(width)

    • 设置 samples 宽度。
  • audio configuration.getchannels()

    • 获取 Channels 数。
  • audio configuration.setchannels(nchannels)

    • 设置 Channels 数。
  • audio configuration.getsampfmt()

    • 获取 samples 格式。
  • audio configuration.setsampfmt(sampfmt)

    • 设置 samples 格式。
  • audio configuration.getfloatmax()

    • 获取 Floatsamples 格式的最大值。
  • audio configuration.setfloatmax(floatmax)

    • 设置 Floatsamples 格式的最大值。

39.1.2. 端口对象

openport()返回的端口对象具有以下方法:

  • audio port.closeport()

    • 关闭端口。
  • audio port.getfd()

    • 以 int 形式返回文件 Descriptors。
  • audio port.getfilled()

    • 返回已填充 sample 的数量。
  • audio port.getfillable()

    • 返回可填充 sample 的数量。
  • audio port.readsamps(nsamples)

    • 从队列中读取多个 samples,如有必要,将其阻塞。以包含原始数据的字符串形式返回数据(例如,如果您将采样宽度设置为 2 个字节,则每个采样均按大端字节 Sequences(高字节,低字节)每个 2 字节)。
  • audio port.writesamps(samples)

    • 将 samples 写入队列,如有必要,将其阻塞。如对readsamps()返回值所述对 samples 进行编码。
  • audio port.getfillpoint()

    • 返回“填充点”。
  • audio port.setfillpoint(fillpoint)

    • 设置“填充点”。
  • audio port.getconfig()

    • 返回一个包含端口当前配置的配置对象。
  • audio port.setconfig(config)

    • 从参数(配置对象)设置配置。
  • audio port.getstatus(list)

    • 获取有关上一个错误的状态信息。

39.2. AL —与 al 模块一起使用的常量

自 2.6 版起弃用:AL模块已在 Python 3 中删除。

该模块定义了使用内置模块al所需的符号常量(请参见上文);它们与 C 头文件<audio.h>中定义的等效,只是Ellipsis了名称前缀AL_。阅读模块源以获取定义名称的完整列表。建议使用:

import al
from AL import *