Streaming Audio
The Audio Player activity supports playback of files over the internet using HTTP progressive streaming, and HTTP live streaming on devices running Android 3.1 or newer.
Currently supported by the Audio Player Activity:
- RTSP (RTP, SDP) over UDP
- HTTP progressive streaming
- HTTPS progressive streaming (Android 3.1 and newer)
- HTTP/HTTPS live streaming draft protocol:
- MPEG-2 TS media files only
- Protocol version 3 (Android 4.0 and above)
- Protocol version 2 (Android 3.x)
- Not supported before Android 3.0
Note that live streaming and HTTPS are only supported on devices running Android 3.x or newer.
Currently not supported by the Audio Player Activity:
- AAC+SBR (see below)
- RTSP/RTP over TCP (the RTP portion must flow over UDP)
- MP3 streams over RTSP/RTP
See Network Protocols for more information about the network protocols supported on Android devices.
Playlist Files
Andromo supports several kinds of playlist files, including M3U, PLS, and ASX.
They are all essentially text files that contain one or more stream URLs. When an audio player activity downloads a playlist, it interprets the contents and displays each URL as a separate track. Within the playlist, you can supply a title for each track along with the URL.
Using playlists also allows you to change the list of streams remotely, without needing to rebuild your app, simply by editing the playlist files.
AAC+
Andromo uses the standard Android audio framework, which supports AAC+ audio if it's supported on the device. (Stock Android officially supports AAC-LC, HE-AAC and HE-AAC v2 in MP4 or M4A containers.)
However, the audio framework and codecs are not always consistent across all device models due to changes or omissions made by the device manufacturers. Some devices will play AAC, some will only play specific variations, and some won't play it at all. It depends how audio was implemented in the device firmware.
Audio streams using AAC+SBR and PS (Progressive Stereo) in particular are not supported on most Android devices.
Note: It's possible that a stream which does not play in the standard audio framework used by Andromo can be played in a different music app on your device. Some apps provide their own support for AAC streams by using third party libraries. However, any app that includes the ability to decode AAC audio is expected to pay licensing fees, which can be very expensive. Note that these fees are legally required even if a free open source library was used.
Because Andromo uses the existing AAC playback ability within Android, you do not need to pay these licensing fees when using Andromo.