I’m looking for an iOS developer to provide code demonstrating how to use the appropriate frameworks for the following:
* play tracks from Apple Music
* play MP3 assets
* display UI controls for play, pause, back, forward (same controls for Apple Music and MP3s)
* display lock-screen controls for play, pause, back, forward (same controls for Apple Music and MP3s)
* when the current audio selection ends, the app will decide what to play next
- this means that the next audio selection is not predefined in a playlist
- the new audio selection could be either a different Apple Music track or another MP3 asset
* when the user selects back or forward, the app will decide what to play next
- as described in the previous point
* playback and control will continue to work with the app in the background
* if the app gets paused because another app has taken control of the audio, the app will receive notification
* ability to overlay another sound over the playing audio
- every ten seconds, over the playing music a sound can be heard (say a beep or a Siri voice saying ‘test’)
- this sound will be controlled by the app (that is: not somehow encoded in the main audio)
- this sound will appear when the app is in both the foreground and background
- the background music track will be faded in order to make the ‘beep’ more distinct
- moving between Apple Music and MP3 should not involve any noticeable lag
In a nut shell, the objective is to deliver an app that can play both Apple Music tracks as well as MP3s, all while being precisely controlled via the lock-screen controls. In addition, the app must be able to fade the playing music and overlay another sound file (which will not itself be Apple Music).
As this is a POC in order to learn how to technically address the aboverequirements, I’m uninterested in aesthetics or other issues. The delivered coded should, however, have sufficient documentation to follow what is happening, and exclude code extraneous to the POC.
If you feel that some aspect is technically impossible but that you could deliver the remaining features, please note this beforehand and we can talk about it.