| It's mostly because I believe none of the phones run real-time operating system. Smooth audio is actually quite hard to achieve. Usually it works like this - audio driver has a buffer that the device is ought to fill with waveform data in a given amount of time. Then that buffer is shifted to the DAC and goes to your speaker. If during that process something happens like an interrupt that takes takes enough time that the process filling the buffer can't finish on time you get clicks and stutters. Filling a buffer sounds simple, but it may involve DSP processing like filtering, mixing multiple channels etc. that also costs processing power. Some operating systems "solved" this by setting buffer high enough that such interruptions would minimise stutters but that is at the expense of the latency (the delay between filling the buffer and then buffer being transferred to the speaker through DAC). Audio in Android is very much still broken (though I am not on latest Android). Don't know about iPhone. The problem is unlikely going to be solved as if you make sure audio can run in real time and be stable, you encounter other problems that make phone use problematic. Everything has trade offs. That's why I used to prefer having separate device for playing music, optimised for this task. |