diff --git a/README.md b/README.md index 189216a..ddcfa76 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Module specification and pins reference is [here](https://wiki.dfrobot.com/DFPla Playback control: ```python play(track_id) # track_id, 'next' or 'prev' +play(track_id, folder) # track_id in folder (both integers) pause() resume() loop_track(track_id) @@ -62,6 +63,7 @@ music.fadeout(2000) music.play(2) music.loop() +music.play(3, 2) # Plays track 3 in folder 2 sleep(20) music.module_sleep() @@ -69,4 +71,4 @@ music.module_sleep() ## License -This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details \ No newline at end of file +This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details diff --git a/dfplayermini.py b/dfplayermini.py index 6e39850..55fac18 100644 --- a/dfplayermini.py +++ b/dfplayermini.py @@ -16,9 +16,9 @@ def __init__(self, pin_TX, pin_RX): self._max_volume = 15 self._fadeout_speed = 0 - def cmd(self, command, parameter=0x00): + def cmd(self, command, parameter=0x00, highparameter=0x00): query = bytes([0x7e, 0xFF, 0x06, command, - 0x00, 0x00, parameter, 0xEF]) + 0x00, highparameter, parameter, 0xEF]) self.uart.write(query) def _fade_out_process(self, timer): @@ -34,8 +34,12 @@ def _fade_out_process(self, timer): # playback - def play(self, track_id=False): - if not track_id: + def play(self, track_id=False, folder=False): + if folder and track_id: + self.cmd(0x0F, track_id, highparameter=folder) + # NB cmd 0X0F requires folder and track_id params. + # 'High' byte and 'Low' byte in the DFRobot C code. + elif not track_id: self.resume() elif track_id == 'next': self.cmd(0x01)