Request a new chunk of audio samples from the stream source.
This function must be overridden by derived classes to provide the audio
samples to play. It is called continuously by the streaming loop, in a
separate thread. The source can choose to stop the streaming loop at any
time, by returning false to the caller. If you return true (i.e. continue
streaming) it is important that the returned array of samples is not
empty; this would stop the stream due to an internal limitation.
Request a new chunk of audio samples from the stream source.
This function must be overridden by derived classes to provide the audio samples to play. It is called continuously by the streaming loop, in a separate thread. The source can choose to stop the streaming loop at any time, by returning false to the caller. If you return true (i.e. continue streaming) it is important that the returned array of samples is not empty; this would stop the stream due to an internal limitation.