I'm developing an app which needs to get music file by streaming for playing live.
In the request song api I can specify the bandwith (eg: 50kbps, 100kbps, 300, 600 or 1 Mbps).
The more the bandwith is big, the more the file will get time to be fetched. As I don't want the users to be restricted about that I have multiple choices to deal with it:
Detect wether the phone is using 3g, wifi or Edge and specify an bandwith for each connection speed.
Let the user decide the quality of the song he will get: like youtube (but the users won't be people that know much about computing: the more easy is the software, the more it will fit)
Having a way to evaluate properly the connection speed: Like fetching a file, measure the time that it took and set the bandwith.
I know that connection speed could vary a lot if user loose the wifi, or is using 3g moving in the street. And the thing is that I can't change the bandwidth when the song will be playing.
Maybe you have experience about that you would like to share?
Thank you!
Facebook released a library for this:
https://github.com/facebook/network-connection-class
this wasn't existing in 2011..