I\'m recently faced with some problems of streaming AAC+ radio streams with the Android MediaPlayer
. Regarding to the documentation, there shou
i had the same problem for my app.
I played alot with MediaPlayer with no success. I even tested with a proxy inside the app that is used for streaming MP3 Streams on older android versions
and i also tested the aacplayer-android/aacdecoder-android, but it was not very stable in my tests...
We ended up with BASS for Android as we were unable to find.
But it also requires an AAC Patent License* if you want to make the app public (for private use i think it does not care...) also it requires an BASS License unless you are a non-commercial entity.
*) Android Apps count as Consumer Products not as Consumer PC Software... just to avoid the mistake we made for our app...
[UPDATE]
Why are the patent fees required?
One have to pay fees as soon as the Product(in this case the App) brings is own decoder (or encoder) as both, BASS and aacdecoder-android bring thier own decoder code, they required to have an AAC license. Only if it would be possible to use the decoder available on the host system(that is licensed/paid by the developer of the host syste - in this case Google) it is "free". But as it seemsthere is currently no way to acces/use the device codecs...
I have also looked into this, and I found that it's necessary to pay licencing fees if you include your own decoder:
Vialicensing (AAC) replied:
“If you will be leveraging the native AAC support in Android so that your apps don’t include an AAC encoder or decoder, then you wouldn’t have a need/obligation for a license – your products wouldn’t infringe.”
This means that the only way you could play AAC without royalties is if the native Android player supports AAC with its built-in decoder. By the looks of things, there isn't support for this on 4. I have tried feeding the player an AAC stream and it just buffers forever.
If you can connect your Nexus 2 with usb and run adb shell
and get a terminal, you can use stagefright
to check for the available codecs and profiles supported.
For example stagefright -l
and stagefright -p
would be the two useful commands.