New Zealand Radio Player Demo

This is an android media player application I wrote but haven’t gotten around to publishing yet.
There is a testing version on the google play store or you can download the apk here.

There is a demonstration video here

The app is actually four years old but is still written in Kotlin and uses a lot of the Android Jetpack api’s as well as being material design themed.
The audio player used is google’s exoplayer media player which is run from a background service.
It features a dynamic list of audio streams from SomaFM as well as some curated feeds and integration with Radio New Zealand’s latest hourly news bulletin, RSS podcasts and their website.
The menu structure is determined by a general purpose kotlin DSL that allows static entries as well as dynamic content from it’s extension API.

@MediaItemDSL
fun MediaItemBuilder.nzStations() =

  menu {

    mediaID = "$URI_CONTENT_PREFIX/nzstations"
    titleID = R.string.title_nz_stations
    subTitleID = R.string.subtitle_nz_stations
    imageID = R.drawable.ic_kiwi


    menu {
      mediaID = "$URI_PREFIX_NZ_STATIONS/metalradio"
      website = "http://www.metalradio.co.nz/"
      title = "Metal Radio"
      subTitle = "New Zealand's Premiere Metal Radio Station, on the (digital) air since 2011!"
      uri = "http://curiosity.shoutca.st:9073/stream"
      imageURI = "https://h1.danbrough.org/nzrp/metalradio.png"
      playable = true
    }

    menu {
      mediaID = "$URI_PREFIX_NZ_STATIONS/andhowfm"
      website = "https://andhow.fm/"
      title = "andHow.FM"
      subTitle = "GotIndie?"
      uri = "http://www.andhow.fm/playlists/andhow.m3u"
      imageURI = "https://h1.danbrough.org/nzrp/andhowheader1.png"
      playable = true
    }
    //...
  }