Design doc covers: custom raw audio pipeline (OkHttp → IcyParser → Mp3FrameSync → MediaCodec → AudioTrack), foreground service with aggressive reconnection, Room DB with future-proofed schema, Compose UI, and ICY metadata with album art fallback chain. Made-with: Cursor
11 lines
890 B
Markdown
11 lines
890 B
Markdown
# Android 24/7 Radio
|
|
|
|
A simple Android application, targeting Android 9.0, which can:
|
|
|
|
1) Manage playlists of Internet radio stations (mp3/shoutcast/icecast).
|
|
2) Playback of stations.
|
|
3) A "Stay Connected" mode which stays connected to the radio station no matter what, reconnecting when disconnected (not timing out), and running in a foreground service so Android doesn't kill it.
|
|
a) with a button to manually cancel/disconnect.
|
|
4) A "as live as possible" mode which eliminates as many buffers and delays as possible, raw unfiltered bytes from the stream directly decoded (mp3) into audio playback, realizing that cellular connections are unreliabe (this is OK, if we drop packets or hear brief drops that is fine.).
|
|
|
|
As stated above, assume that the streams will be mp3 and primarily icecast/shoutcast-compliant, meaning we can look for metadata and show album art and things like this. |