If your player starts playing the music instantly, and then a two-second delay of service between the web browser and the web server begins, there will be a two-second pause in the music. And that sounds awful. Little delays like this happen all the time, so this would be unacceptable.
On the other hand, if the player "buffers" music for the first five seconds, then it can "ride out" a two-second delay and then catch up and get ahead again when the connection improves.
Another reason for the delay: what if the end user's Internet connection is very slow, such as a dialup modem connection? Alternatively, what if the web server is overloaded by too many listeners? Then the connection will never be able to keep up, and streaming playback is a mistake. The player should instead wait for the whole song to download before it begins playing.
With a five-second delay at the beginning, the player can usually detect this situation. If only two seconds of music arrive in those five seconds, that's a big clue that the connection is too slow for streaming music.
If the connection improves, and the player does get well ahead of "real time," streaming playback may start later.
For more information, see how do I play streaming audio on a web page?
Got a LiveJournal account? Keep up with the latest articles in this FAQ by adding our syndicated feed to your friends list!