Mobile audio player

Hi JUCE community,

I am currently considering a new project that requires the implementation of a custom audio player for iOS (and later possibly also Android) using JUCE. Specifically, I want to create an audio player that can play songs from the user’s music library with custom audio processing and a custom GUI.

Before diving into the implementation, I wanted to reach out to the community to see if anyone has already tackled a similar task. I would greatly appreciate any help or guidance that you may have.

From my initial research, here’s a summarized outline of what I believe would be involved in the implementation:

  1. Requesting permission to access the music library.
  2. Retrieving songs from the music library using JUCE’s file handling or platform-specific APIs.
  3. Configuring an audio player using JUCE’s audio player classes, such as AudioTransportSource or AudioSourcePlayer.
  4. Getting the audio frames as they are decoded and applying my custom processing before passing them on to the audio I/O device.
  5. Creating a user interface to display song information, playback and processing controls, and handle user interactions.
  6. Managing background audio playback by configuring JUCE’s audio settings.
  7. Managing control inputs from the OS (such as play/pause button pressed on headphones, etc.)

If you have any experience or suggestions related to implementing a custom audio player for iOS with JUCE, I would be grateful for your insights. Any code snippets, examples, or recommended resources would be immensely helpful.

Thank you in advance for your time and support. I look forward to hearing from you!

Best regards,
Fritz

Hi there, I think the drowaudio repo can be very helpful for what you’re after. There’s even an example of a music libary player:

1 Like

Thanks, that looks very interesting and is likely to be already very useful for what I want to do. Any idea if there’s something similar for Android, too?

Great! I don’t know of anything specifically for Android, but I think accessing the music library files is quite straightforward (as opposed to iOS) and can all be done with the methods in the JUCE library.

1 Like

Hi,

I’ve tried now the dRowAudio library and the iOS demo app. Unfortunately it implements only a small part of what a real-world audio player would need (basically it implements picking a song or a playlist, displaying the artist and song title, and play/pause. Actually it doesn’t even go to the next song in the playlist. Yikes. But it lacks also plenty of other features, like play/pause/skip using the headphone button, displaying the song title on the lock screen, etc.

So while it’s surely a good first step, it’s still really far from being a fully fledged audio player.

Thus the question is still open: did anyone already implement a fully fledged audio player in JUCE and is willing to share some info and/or code regarding how it was done?

Best regards,
Fritz