Not just a music player controlled via a phone, but with multiple phones.
Because of some weird String Array error, I need to recheck the code + the songlistcreator is faulty, I'm sorry!
Usual boxes or music players require a phone always connected, via Bluetooth or just with a cable. This draws a lot of your battery and you can't take your phone anywhere.
That's why I've created the LinkItBoom, you just plug your speakers in and it starts playing music, with an Android App to control it.
The LinkItBoom application is a lightweight App that uses the WiFi network to send commands to the LinkIt ONE, where all the music is stored.
If you want to create your own project with an app(Android) and a LinkIt ONE connected via WiFi: Check out my second project: Arduino and Android (also part of the LinkIt ONE challenge)
The LinkIt ONE Software:
The Arduino application is built to play music till infinity. The songs are stored on a SD card, along with a list of the songs. When the Android App requests a 'page' it returns a value(volume/song) and does something with the request(next song, volume up/down, pause/play). If there goes something wrong with the WiFi stuff, it keeps playing music.
The Android Software:
The Android App is build to send requests to the LinkItONE and show the values on-screen. The app is very lightweight(1 MB). At startup it checks if you previously have used the app, if not, sends you to the Setting page to set the IP of the LinkIt ONE, which you can also change later. The UI is as simple as possible, with a few buttons and two textviews. The app isn't required, but it is the only way to communicate with the LinkIt ONE. The app should work on every device, because it is tested on the oldest possible(Android 2.3 Samsung Gio) and the newest possible(Android 6.0 Nexus 6P).
FIRST: Install the Arduino IDE and drivers according to the dev page
Open the arduino code from the source and change the WiFi SSID(WIFI_AP) and the password(WIFI_PASSWORD) and if needed the WiFi authentication type(WIFI_AUTH).
Then connect the board to your PC, with the SD/SPI to the SPI side( It also works on the SD side, but it is really buggy ) and upload the code.
Then get a SD card and put all the music you like on it and put the createlist.exe(in the linkitboom folder) file on it and run it(windows only). This will create a file called TEST.TXT with all the music names. You can also create your own list, just put all the file names in the TEST.TXT file and add spaces(also after the last one) between them, without returns!. If you have more than 50 songs, increase the 50 of the initialization of the variables(line 19).
Then unplug your LinkIt ONE and insert the SD card and push the SD/SPI switch to the SD side. Also add the WiFi/Bluetooth to the board, middle connector. Also don't forget to add a speaker, or it will be very silent.
When you power up the board it will first read the txt file and start the first song, this takes around 8-15 seconds, and then boot up the WiFi server.
Running on the battery it can run very long( I have been using it every day(~10 days at least) for an hour and it still runs).
Copy the app-release.apk file from the root of the downloaded zip to your Android Phone and install it:
Then start the app, which will directly send you to the Setting page, where you need to enter the IP address of the LinkIt ONE, which you can find with apps like Fing. You need to have the LinkIt ONE up and running.
After the initialization the main page will pop up. Click reload to retrieve the current played song. Now you can use the rest of the buttons, Volume UP/DOWN for the volumes and PLAY|PAUSE/NEXT SONG for the current song being played. If the LinkIt ONE falls of the WiFi network, the app is pretty much useless, then you need to reset the board via the button at the side.
You can use the app on multiple devices at the same time, but a song is nexted on phone 1, you don't see that on the other phones, the same with the volume and the current song when it is at the end.
If you want to change anything of the app, you need to install Android Studio and open the project. There are also comments in the Android Code.