AudioPlayer Unit
这是 AudioPlayer Unit 的驱动库,用于播放音频文件。
支持以下产品:
UiFlow2 应用示例
播放音频
在 UiFlow2 中打开 audioplayer_core2_example.m5f2 项目。
该示例在 AudioPlayer Unit 上播放音频文件。
UiFlow2 代码块:
示例输出:
None
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")
示例输出:
None
API参考
AudioPlayerUnit
- class unit.audioplayer.AudioPlayerUnit(id=2, port=None, verbose=False)
基类:
object创建一个 AudioPlayerUnit 对象。
- 参数:
UiFlow2 代码块:

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

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

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

MicroPython 代码块:
audio_player_0.pause_audio()
- stop_audio()
停止音频。
- 返回:
音频播放器的播放状态。
- 返回类型:
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:UDISK 或 SD - 4:Flash - 5:Flash 或 UDISK - 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()
获取当前音频文件的总播放时长。
- 返回:
一个包含总播放时长 (hour, minute, second) 的元组。
- 返回类型:
MicroPython 代码块:
audio_player_0.get_total_play_time()
- decrease_volume()
降低音频播放器的音量。
UiFlow2 代码块:

MicroPython 代码块:
audio_player_0.decrease_volume()
- 返回类型:
None
- increase_volume()
提高音频播放器的音量。
UiFlow2 代码块:

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

MicroPython 代码块:
audio_player_0.get_volume()
- set_volume(volume)
设置音频播放器的音量级别。
- 参数:
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

