audioio –  支持音频输出¶
该 audioio 模块包含提供对音频 IO 的访问的类。
如果程序在使用后继续,所有类都会更改硬件状态,并且在不再需要它们时应取消初始化。为此,请调用deinit() 或使用上下文管理器。有关更多信息,请参阅 
Lifetime 和 ContextManagers。
自 CircuitPython 5 起, RawSample 和WaveFile 移至audiocore, 并Mixer 移至 audiomixer。
为了与 CircuitPython 4.x 兼容,某些版本允许
audiocore 从 audioio.  在未来的 CircuitPython 版本中,所有电路板都将删除此选项。
在这些板上可用
- 
class audioio.AudioOut(left_channel: microcontroller.Pin, *, right_channel: Optional[microcontroller.Pin] = None, quiescent_value: int = 32768)¶
- 输出模拟音频信号 - 创建与给定引脚关联的 AudioOut 对象。这允许您在给定的引脚上播放音频信号。 - 参数
 - 简单的 8ksps 440 Hz 正弦波: - import audiocore import audioio import board import array import time import math # Generate one period of sine wav. length = 8000 // 440 sine_wave = array.array("H", [0] * length) for i in range(length): sine_wave[i] = int(math.sin(math.pi * 2 * i / length) * (2 ** 15) + 2 ** 15) dac = audioio.AudioOut(board.SPEAKER) sine_wave = audiocore.RawSample(sine_wave, sample_rate=8000) dac.play(sine_wave, loop=True) time.sleep(1) dac.stop() - 从闪存播放波形文件: - import board import audioio import digitalio # Required for CircuitPlayground Express speaker_enable = digitalio.DigitalInOut(board.SPEAKER_ENABLE) speaker_enable.switch_to_output(value=True) data = open("cplay-5.1-16bit-16khz.wav", "rb") wav = audiocore.WaveFile(data) a = audioio.AudioOut(board.A0) print("playing") a.play(wav) while a.playing: pass print("stopped") - 
paused:bool¶
- 播放暂停时为真。(只读) 
 - 
__exit__(self) → None¶
- 退出上下文时自动取消初始化硬件。有关更多信息,请参阅 Lifetime 和 ContextManagers 。 
 - 
play(self, sample: _typing.AudioSample, *, loop: bool = False) → None¶
- 当 loop=False 时播放一次样本,当 loop=True 时连续播放。不阻塞。使用 - playing以块。- 样品必须是 - audiocore.WaveFile,- audiocore.RawSample,- audiomixer.Mixer或- audiomp3.MP3Decoder。- 样本本身应由 16 位样本组成。具有较低输出分辨率的微控制器将使用最高位进行输出。例如,SAMD21 有一个 10 位 DAC,它在播放 16 位样本时会忽略最低的 6 位。