AudioPlayer Unit
该驱动库用于控制AudioPlayer Unit播放音频文件。
支持以下产品:
UiFlow2 示例
播放音频
在 UiFlow2 中打开 audioplayer_core2_example.m5f2 项目。
这个示例展示了使用 AudioPlayer Unit 播放音频文件。
UiFlow2 代码块:
示例输出:
无
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)
基类:
objectCreate an AudioPlayerUnit object.
UiFlow2 代码块:

MicroPython 代码块:
from unit import AudioPlayerUnit audio_player_0 = AudioPlayerUnit(2, port=(33, 32))
- check_play_status()
检查 AudioPlayer 的播放状态。
- 返回:
AudioPlayer 的播放状态。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.check_play_status()
- play_audio()
播放音频。
- 返回:
AudioPlayer 的播放状态。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.play_audio()
- pause_audio()
暂停音频。
- 返回:
AudioPlayer 的播放状态。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.pause_audio()
- stop_audio()
停止音频。
- 返回:
AudioPlayer 的播放状态。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.stop_audio()
- next_audio()
播放下一个音频。
- 返回:
当前播放音频的索引。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.next_audio()
- previous_audio()
播放上一个音频。
- 返回:
当前播放音频的索引。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.previous_audio()
- play_audio_by_index(index)
按索引播放音频。
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.play_audio_by_index(1)
- play_audio_by_name(name)
按文件名播放音频。
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).
- 返回类型:
MicroPython 代码块:
audio_player_0.get_current_play_device_type()
- get_total_audio_number()
获取可用的音频文件总数。
- 返回:
音频文件总数。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.get_total_audio_number()
- get_current_audio_number()
获取当前音频文件编号。
- 返回:
当前音频文件编号。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.get_current_audio_number()
- play_current_audio_at_time(time_min, time_sec)
从特定时间位置播放当前音频。
MicroPython 代码块:
audio_player_0.play_current_audio_at_time(1, 30)
- play_audio_at_time(audio_index, time_min, time_sec)
从特定时间位置播放特定音频文件。
- 参数:
- 返回类型:
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()
获取当前音频文件的名称。
- 返回:
当前音频文件的名称作为字节列表。
- 返回类型:
MicroPython 代码块:
audio_player_0.get_file_name()
- select_audio_num(audio_num)
按编号选择一个音频文件但不播放该音频。
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.select_audio_num(1)
- get_file_count()
获取当前目录中的文件总数。
- 返回:
文件总数。
- 返回类型:
MicroPython 代码块:
audio_player_0.get_file_count()
- get_total_play_time()
获取当前音频文件的总播放时间。
- 返回:
包含 (小时, 分钟, 秒) 的元组,表示总播放时间。
- 返回类型:
MicroPython 代码块:
audio_player_0.get_total_play_time()
- decrease_volume()
降低音频播放器的音量。
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.decrease_volume()
- 返回类型:
None
- increase_volume()
增加AudioPlayer Unit的音量。
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.increase_volume()
- 返回类型:
None
- get_volume()
获取AudioPlayer Unit的当前音量级别。
- 返回:
当前音量级别。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.get_volume()
- set_volume(volume)
设置AudioPlayer Unit的音量级别。
- 参数:
volume (int) – 要设置的音量级别 (0-30)。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.set_volume(15)
- repeat_at_time(start_min, start_sec, end_min, end_sec)
设置在两个时间位置之间重复播放。
- 参数:
- 返回类型:
None
MicroPython 代码块:
audio_player_0.repeat_at_time(0, 30, 1, 30)
- end_repeat()
结束重复播放模式。
MicroPython 代码块:
audio_player_0.end_repeat()
- 返回类型:
None
- get_play_mode()
获取当前播放模式。
- 返回:
当前播放模式。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.get_play_mode()
- set_play_mode(mode)
设置播放模式。
- 参数:
mode (int) – 要设置的播放模式。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.set_play_mode(1)
- start_combine_play(mode, data)
开始组合播放模式。
MicroPython 代码块:
audio_player_0.start_combine_play(1, [1, 2, 3])
- end_combine_play()
结束组合播放模式。
MicroPython 代码块:
audio_player_0.end_combine_play()
- 返回类型:
None

