from microbit import * class QJ00X_MP3: def __init__(self, mp3_rx=pin2, mp3_tx=pin16, volume=0x16, mode=0x01): uart.init(rx=mp3_rx, tx=mp3_tx, baudrate=9600) self.set_eq(1) self.set_vol(volume) self.set_mode(mode) self.pause() def _send_cmd(self, length, cmd, data_high=None, data_low=None): uart.write(b"\x7E") uart.write(bytes([length])) uart.write(bytes([cmd])) if data_high != None: uart.write(bytes([data_high])) if data_low != None: uart.write(bytes([data_low])) uart.write(b"\xEF") sleep(200) # 下一曲 def next_track(self): self._send_cmd(0x02, 0x03) # 上一曲 def prev_track(self): self._send_cmd(0x02, 0x04) # 选择曲目 def sel_track(self, track_index): self._send_cmd(0x03, track_index) # 音量+ def inc_vol(self): self._send_cmd(0x02, 0x05) # 音量- def dec_vol(self): self._send_cmd(0x02, 0x06) # 设置音量 def set_vol(self, volume): self._send_cmd(0x03, 0x31, data_high=volume) # 设置音效 def set_eq(self, equalizer): self._send_cmd(0x03, 0x32, data_high=equalizer) # 设置播放设备 def set_mode(self, mode): self._send_cmd(0x03, 0x35, data_high=mode) # 播放 def play(self): self._send_cmd(0x02, 0x01) # 终止播放 def pause(self): self._send_cmd(0x02, 0x02) # 设置文件夹播放 def set_folder(self, folder_index, music_index): self._send_cmd(0x04, 0x42, data_high=folder_index, data_low=music_index) # 设置曲目播放 def playFileByIndexNumber(self, music_index): self._send_cmd(0x04, 0x41, data_high=0x00, data_low=music_index) # 设置循环 def set_loop(self, mode): self._send_cmd(0x03, 0x33, data_high=mode)