MP3 Player Module

Currently trying to make a MP3 player and I recently bought a DFPlayer Mini only to find out it is limited to only getting the number of songs or folders.

Is there any recommendations for boards I can buy that supports: volume adjustment, play, pause, fast forward, fast reverse, get file name, get file runtime, speaker support, etc.

I am planning to likely use a ESP32 along with the suitable MP3 board.

esp32 will do the job.

DFplayer Mini supports those things!

Do you mean skip track forward/reverse? It supports that too.

1 Like

I don't believe it supports getting file information like duration or file name

I think you are right about that. But the list of things it does not support is shorter than you thought.

Do you know of any other audio boards that boasts even more features? Things like randomizing etc.

Just find the features of the dfplayer a bit lacking in freedom, also looking at the documentation again, it doesn't seem to support fast forwarding/reversing within a song

Correct - it does not.

Any MP3/audio board recommendations are welcomed

You are a bit short for not doing your homework on a US$10 tech from the last millennium.

This is a ardunio forum and because of this I am just seeking assistance with finding a proper board to try to build my own (more personal and customizable). As all the options I've currently browsed seem to lack features in some way:

  • Teensy 4.1 with Audio Shield
  • DFPlayer Pro and ESP32
  • MaESP ESP32 OLED and MakePython Audio Expansion
  • VS1053

Your title is "MP3 Player Module" and you dismiss anyone mentioning any module.

Being more descriptive could help identify the product(s) needed... or help you discover the secret module(s) that seem to evade everyone who has been using every peripheral device for the Arduino for over a decade.

Assuming you find the right file handling device and library(ies), this YouTube channel does very nice (but not-too-deep) work with Arduino displays.

My bad if it came off that way, the responses up until now have just been either reiterations of what I stated in my original forum post or device features (fast forward, etc.)

Also in regards to the title, I thought it was suitable since if you search up MP3 Player Module you'll get recommend things like the TFPlayer Mini, ESP32, etc. and not actual fully fledged MP3 players. Not trying to be dismissive, there's just been no module/board recommendations or pairings thus far.

But overall, thanks for all the responses, I'll be sure to research further and hopefully things work out

Have a look at this:

  /**
   * @brief Set volume 
   * @param vol:0-30
   * @return true or false
   */
  bool setVol(uint8_t vol);

  /**
   * @brief Set playback mode 
   * @param ePlayMode_t:SINGLECYCLE,ALLCYCLE,SINGLE,RANDOM,FOLDER
   * @return true or false
   */
  bool setPlayMode(ePlayMode_t mode);

  /**
   * @brief Play 
   * @return true or false
   */
  bool start();

  /**
   * @brief Pause 
   * @return true or false
   */
  bool pause();

  /**
   * @brief Next 
   * @return true or false
   */
  bool next();

  /**
   * @brief Previous 
   * @return true or false
   */
  bool last();

  /**
   * @brief Fast forward the currently-playing song
   * @param second  FF time(Unit: S) 
   */
  bool fastForward(uint16_t second);

  /**
   * @brief Fast Rewind the currently-playing song 
   * @param second  FR time(Unit: S)
   */
  bool fastReverse(uint16_t second);

  /**
   * @brief Let the currently-playing song start playing from a particular time point 
   * @param second  Fixed time point
   */
  bool setPlayTime(uint16_t second);

  /**
   * @brief Get file number 
   */
  uint16_t getCurFileNumber();

  /**
   * @brief Get the number of files available to play 
   */
  uint16_t getTotalFile();

  /**
   * @brief Get the time length the current song has played 
   */
  uint16_t getCurTime();

  /**
   * @brief Get the total length of the currently-playing song
   */
  uint16_t getTotalTime();

  /**
   * @brief Get the name of the playing file 
   */
  String   getFileName();

  /**
   * @brief Play file of the specific path 
   * @param The designated path 
   */
  bool playSpecFile(String str);

  /**
   * @brief Play the file of specific number, the numbers are arranged according to the sequences the files copied into the U-disk 
   * @param File number, can be obtained by getCurFileNumber()
   */
  bool playFileNum(int16_t num);

  /**
   * @brief Delete the currently-playing file 
   * @return true or false
   */
  bool delCurFile();

Includes

  /**
   * @brief Get the name of the playing file 
   */
  String   getFileName();

Oh that was one of the modules I mentioned/looked into in the past, planning to maybe give that one a try. The only concerning part is that there's not much mention from people in regards to utilizing the DFPlayer Pro oddly enough when compared to the DFPlayer Mini, and I've seen a few forums recounting how it's functionality can be really iffy sometimes. But I'll probably have to try for myself, thanks

1 Like

randomization can be easily done in code, it is not a player function...

Honestly, I haven't seen a module with the full set of functions you are looking for. It seems to me that the only option is to make it yourself. ESP32 supports audio output and is fast enough to unpack MP3s on the fly.
This means that you can make your own player on its basis and add all the functions you need to it. Perhaps such a project already exists and all you have to do is add the functions you need to the firmware.
Something like this:

I was really hoping there would be a module with these existing features/functions. But your right that's definitely a solid route, I'll for sure try to look more into past forums/projects as well

It's worth a shot - give it a go!

I'll second this. I use the DFPlayer Mini on my railway layout, it plays random animal noises for my farm. Code, not module randomization. Or, since we are using Arduino, pseudo-randomization.

Have you thought about a raspberry pi? Seems there could be way more options there

Oh damn that's neat, yeah I thought the DFPlayer mini was really limited but you were able to expand it out like with your random animal noises. Also haven't looked into raspberry pis but that's just another avenue to look down as well : )

You understand; For the same cost for just the file handling functionality of the DFPlayer Pro, is a pre-programmed, fully operational, MP3 player with rechargeable battery, play/pause/ff/rw/stop buttons, earphones, and screen. The BOM parts might be under US$30.

Is there a way to increase the storage of the DFPlayer Pro? I dont get why they went with a tiny internal storage instead of an SD card solution. With its features it would be perfect for so many projects but the tiny storage negates this.