Building a Custom Music Player

Hello everyone,

I’m currently working on a project on Wix Editor to create a Spotify-like music player, utilizing the existing Wix Audio Player component.

Here’s what I’ve accomplished so far:

  • Set up a site with a user system
  • Established a database with CMS
  • Created a page showcasing all available songs on the site

Now, let’s talk about the features of my player:

  • Play/Pause toggle
  • Sequential playing
  • Forward and backward song navigation
  • Shuffle playing

But that’s not all—I also aim to incorporate the ability for users to:

  • Create personal playlists
  • Add, edit, and delete songs from their playlists

My question for you all is: do you think it’s feasible to develop these features on the Wix platform, possibly using Wix Velo coding?

Looking forward to your insights and suggestions!

The ANSWER would be → YES it is possible to create your wished features and functions.

Go the logical way.

You have now created already a → USER-SYSTEM <<---->> LOGIN-SYSTEM/REGISTRATION.
Every user who registers on your site, gets a → MEMBER-ID.
You can use this MEMBER-ID to give each USER the ability to create his own PLAYLIST/PLAYLISTS.

You will need a DATABASE for this purpose, where you will store all created playlists for each USER.

Shuffle playing → RANDOM-PLAYLIST <— should also not be the big deal.
Generate a JS-CODE which will generate you a RANDOM number.
Regarding your DATABASE where you will have all your songs, or regarding users PLAYLIST, where every song has it’S own index-number, you can use such INDEX-Number to let the CODE pick up a RANDOM song and automaticaly do what ever you want with that song —> (start-playing, adding to a further playlist, deleting, editing, what evever).

Forwand and backword-song-navigation will depend on the structure of your setup.

Sequential-playing → what do you mean ?

Thank you for the detailed response.

Regarding Sequential-playing: The current Wix audio player plays a song but does not automatically transition to the next one.
I assume this functionality needs to be implemented through coding.