AudioPlayer Unit

该驱动库用于控制AudioPlayer Unit播放音频文件。

支持以下产品:

AudioPlayer

UiFlow2 示例

播放音频

在 UiFlow2 中打开 audioplayer_core2_example.m5f2 项目。

这个示例展示了使用 AudioPlayer Unit 播放音频文件。

UiFlow2 代码块:

example.png

示例输出:

MicroPython 示例

播放音频

这个示例展示了使用 AudioPlayer Unit 播放音频文件。

MicroPython 代码块:

 1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from unit import AudioPlayerUnit
 9import time
10
11
12title0 = None
13label0 = None
14label1 = None
15label2 = None
16audioplayer_0 = None
17
18
19play_state = None
20
21
22def btn_b_was_pressed_event(state):
23    global title0, label0, label1, label2, audioplayer_0, play_state
24    if play_state:
25        audioplayer_0.pause_audio()
26    else:
27        audioplayer_0.play_audio()
28
29
30def setup():
31    global title0, label0, label1, label2, audioplayer_0, play_state
32
33    M5.begin()
34    Widgets.fillScreen(0x222222)
35    title0 = Widgets.Title(
36        "AudioPlayerUnit Core2 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
37    )
38    label0 = Widgets.Label(">||", 145, 214, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
39    label1 = Widgets.Label("label1", 1, 71, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
40    label2 = Widgets.Label("label2", 1, 123, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
41
42    BtnB.setCallback(type=BtnB.CB_TYPE.WAS_PRESSED, cb=btn_b_was_pressed_event)
43
44    audioplayer_0 = AudioPlayerUnit(2, port=(33, 32))
45    audioplayer_0.set_play_mode(0)
46    play_state = 0
47
48
49def loop():
50    global title0, label0, label1, label2, audioplayer_0, play_state
51    M5.update()
52    play_state = audioplayer_0.check_play_status()
53    if play_state:
54        label1.setText(str("Play Status: Playing"))
55    else:
56        label1.setText(str("Play Status: Paused"))
57    label2.setText(str((str("Audio Num: ") + str((audioplayer_0.get_current_audio_number())))))
58    time.sleep_ms(100)
59
60
61if __name__ == "__main__":
62    try:
63        setup()
64        while True:
65            loop()
66    except (Exception, KeyboardInterrupt) as e:
67        try:
68            from utility import print_error_msg
69
70            print_error_msg(e)
71        except ImportError:
72            print("please update to latest firmware")

示例输出:

API

AudioPlayerUnit

class unit.audioplayer.AudioPlayerUnit(id=2, port=None, verbose=False)

基类:object

Create an AudioPlayerUnit object.

参数:
  • id (int) – 设备 UART ID。默认是 2。

  • port (list | tuple) – 获取当前在线设备类型。

  • verbose (bool) – Debug模式开关。默认关闭。

UiFlow2 代码块:

init.png

MicroPython 代码块:

from unit import AudioPlayerUnit

audio_player_0 = AudioPlayerUnit(2, port=(33, 32))
check_play_status()

检查 AudioPlayer 的播放状态。

返回:

AudioPlayer 的播放状态。

返回类型:

bool

UiFlow2 代码块:

check_play_status.png

MicroPython 代码块:

audio_player_0.check_play_status()
play_audio()

播放音频。

返回:

AudioPlayer 的播放状态。

返回类型:

int

UiFlow2 代码块:

play_audio.png

MicroPython 代码块:

audio_player_0.play_audio()
pause_audio()

暂停音频。

返回:

AudioPlayer 的播放状态。

返回类型:

bool

UiFlow2 代码块:

pause_audio.png

MicroPython 代码块:

audio_player_0.pause_audio()
stop_audio()

停止音频。

返回:

AudioPlayer 的播放状态。

返回类型:

int

UiFlow2 代码块:

stop_audio.png

MicroPython 代码块:

audio_player_0.stop_audio()
next_audio()

播放下一个音频。

返回:

当前播放音频的索引。

返回类型:

int

UiFlow2 代码块:

next_audio.png

MicroPython 代码块:

audio_player_0.next_audio()
previous_audio()

播放上一个音频。

返回:

当前播放音频的索引。

返回类型:

int

UiFlow2 代码块:

previous_audio.png

MicroPython 代码块:

audio_player_0.previous_audio()
play_audio_by_index(index)

按索引播放音频。

参数:

index (int) – 要播放的音频的索引。

返回:

当前播放音频的索引。

返回类型:

int

UiFlow2 代码块:

play_audio_by_index.png

MicroPython 代码块:

audio_player_0.play_audio_by_index(1)
play_audio_by_name(name)

按文件名播放音频。

参数:

name (str) – 要播放的音频文件的名称。

返回:

当前播放音频的索引。

返回类型:

int

MicroPython 代码块:

audio_player_0.play_audio_by_name("music.mp3")
get_current_online_device_type()

获取当前在线设备类型。

返回:

设备类型代码

返回类型:

int

设备类型:
  • 1: USB

  • 2: SD

  • 3: U盘 或 SD卡

  • 4: Flash

  • 5: Flash 或 U盘

  • 6: Flash 或 SD卡

MicroPython 代码块:

audio_player_0.get_current_online_device_type()
get_current_play_device_type()

获取当前播放设备类型。

返回:

设备类型代码 (0: USB, 1: SD, 2: SPI FLASH).

返回类型:

int

MicroPython 代码块:

audio_player_0.get_current_play_device_type()
get_total_audio_number()

获取可用的音频文件总数。

返回:

音频文件总数。

返回类型:

int

UiFlow2 代码块:

get_total_audio_number.png

MicroPython 代码块:

audio_player_0.get_total_audio_number()
get_current_audio_number()

获取当前音频文件编号。

返回:

当前音频文件编号。

返回类型:

int

UiFlow2 代码块:

get_current_audio_number.png

MicroPython 代码块:

audio_player_0.get_current_audio_number()
play_current_audio_at_time(time_min, time_sec)

从特定时间位置播放当前音频。

参数:
  • time_min (int) – 开始播放的分钟位置。

  • time_sec (int) – 开始播放的秒位置。

返回类型:

None

MicroPython 代码块:

audio_player_0.play_current_audio_at_time(1, 30)
play_audio_at_time(audio_index, time_min, time_sec)

从特定时间位置播放特定音频文件。

参数:
  • audio_index (int) – 要播放的音频文件的索引。

  • time_min (int) – 开始播放的分钟位置。

  • time_sec (int) – 开始播放的秒位置。

返回类型:

None

MicroPython 代码块:

audio_player_0.play_audio_at_time(1, 0, 30)
next_directory()

导航到下一个目录。

MicroPython 代码块:

audio_player_0.next_directory()
返回类型:

None

previous_directory()

导航到上一个目录。

MicroPython 代码块:

audio_player_0.previous_directory()
返回类型:

None

end_audio()

结束播放当前音频。

MicroPython 代码块:

audio_player_0.end_audio()
返回类型:

None

get_file_name()

获取当前音频文件的名称。

返回:

当前音频文件的名称作为字节列表。

返回类型:

list

MicroPython 代码块:

audio_player_0.get_file_name()
select_audio_num(audio_num)

按编号选择一个音频文件但不播放该音频。

参数:

audio_num (int) – 要选择的音频文件的编号。

返回:

当前选中的音频文件编号。

返回类型:

int

UiFlow2 代码块:

select_audio_num.png

MicroPython 代码块:

audio_player_0.select_audio_num(1)
get_file_count()

获取当前目录中的文件总数。

返回:

文件总数。

返回类型:

int

MicroPython 代码块:

audio_player_0.get_file_count()
get_total_play_time()

获取当前音频文件的总播放时间。

返回:

包含 (小时, 分钟, 秒) 的元组,表示总播放时间。

返回类型:

tuple

MicroPython 代码块:

audio_player_0.get_total_play_time()
decrease_volume()

降低音频播放器的音量。

UiFlow2 代码块:

decrease_volume.png

MicroPython 代码块:

audio_player_0.decrease_volume()
返回类型:

None

increase_volume()

增加AudioPlayer Unit的音量。

UiFlow2 代码块:

increase_volume.png

MicroPython 代码块:

audio_player_0.increase_volume()
返回类型:

None

get_volume()

获取AudioPlayer Unit的当前音量级别。

返回:

当前音量级别。

返回类型:

int

UiFlow2 代码块:

get_volume.png

MicroPython 代码块:

audio_player_0.get_volume()
set_volume(volume)

设置AudioPlayer Unit的音量级别。

参数:

volume (int) – 要设置的音量级别 (0-30)。

返回类型:

None

UiFlow2 代码块:

set_volume.png

MicroPython 代码块:

audio_player_0.set_volume(15)
repeat_at_time(start_min, start_sec, end_min, end_sec)

设置在两个时间位置之间重复播放。

参数:
  • start_min (int) – 开始播放的分钟位置。

  • start_sec (int) – 开始播放的秒位置。

  • end_min (int) – 结束播放的分钟位置。

  • end_sec (int) – 结束播放的秒位置。

返回类型:

None

MicroPython 代码块:

audio_player_0.repeat_at_time(0, 30, 1, 30)
end_repeat()

结束重复播放模式。

MicroPython 代码块:

audio_player_0.end_repeat()
返回类型:

None

get_play_mode()

获取当前播放模式。

返回:

当前播放模式。

返回类型:

int

UiFlow2 代码块:

get_play_mode.png

MicroPython 代码块:

audio_player_0.get_play_mode()
set_play_mode(mode)

设置播放模式。

参数:

mode (int) – 要设置的播放模式。

返回类型:

None

UiFlow2 代码块:

set_play_mode.png

MicroPython 代码块:

audio_player_0.set_play_mode(1)
start_combine_play(mode, data)

开始组合播放模式。

参数:
  • mode (int) – 组合播放模式。

  • data (list[int]) – 组合播放的数据。

返回类型:

None

MicroPython 代码块:

audio_player_0.start_combine_play(1, [1, 2, 3])
end_combine_play()

结束组合播放模式。

MicroPython 代码块:

audio_player_0.end_combine_play()
返回类型:

None

into_sleep_mode()

将AudioPlayer Unit 置于睡眠模式。

返回:

如果命令发送成功,则为 True。

返回类型:

bool

MicroPython 代码块:

audio_player_0.into_sleep_mode()