audiocore –  支持音频样本¶
在这些板上可用
- 
class audiocore.RawSample(buffer: _typing.ReadableBuffer, *, channel_count: int = 1, sample_rate: int = 8000)¶
- 内存中的原始音频样本缓冲区 - 根据给定的带符号值缓冲区创建一个 RawSample。如果 channel_count 大于 1,则每个通道的样本应该交替。换句话说,对于双通道缓冲器,第一个采样将用于通道 1,第二个采样将用于通道 2,第三个采样用于通道 1,依此类推。 - 参数
- buffer (ReadableBuffer) – 带有样本的缓冲区 
- channel_count (int) – 缓冲区中的通道数 
- sample_rate (int) – 所需的播放采样率 
 
 - 简单的 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)) dac = audioio.AudioOut(board.SPEAKER) sine_wave = audiocore.RawSample(sine_wave) dac.play(sine_wave, loop=True) time.sleep(1) dac.stop() - 
sample_rate:Optional[int]¶
- 32 位值,指示采样以赫兹(每秒周期数)播放的速度。当样本循环时,这可以改变音高输出而不改变底层样本。这不会改变任何活动播放的采样率。 - play再次调用以更改它。
 - 
__exit__(self) → None¶
- 退出上下文时自动取消初始化硬件。有关更多信息,请参阅 Lifetime 和 ContextManagers 。 
 
- 
class audiocore.WaveFile(file: BinaryIO, buffer: _typing.WriteableBuffer)¶
- 加载用于音频播放的波形文件 - 为音频播放准备的 .wav 文件。仅支持单声道和立体声文件。样本必须是 8 位无符号或 16 位有符号。如果提供了缓冲区,则将使用它而不是分配内部缓冲区,这样可以防止内存碎片。 - 加载 .wav 文件以使用 - audioio.AudioOut或进行播放- audiobusio.I2SOut。- 参数
- file (typing.BinaryIO) – 已经打开的波形文件 
- buffer (WriteableBuffer) – 可选的预分配缓冲区,它将被分成两半并用于数据的双缓冲。缓冲区的长度必须为 8 到 1024 字节。如果未提供,则最初在内部分配两个 256 字节缓冲区。 
 
 - 从闪存播放波形文件: - import board import audiocore 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") - 
sample_rate:int¶
- 32 位值,指示以赫兹(每秒周期数)为单位将样本加载到 DAC 的速度。当样本循环时,这可以改变音高输出而不改变底层样本。 
 - 
bits_per_sample:int¶
- 每个样本的位数。(只读) 
 - 
channel_count:int¶
- 音频通道数。(只读) 
 - 
__exit__(self) → None¶
- 退出上下文时自动取消初始化硬件。有关更多信息,请参阅 Lifetime 和 ContextManagers 。