ExoPlayer provides functionality to download media for offline playback. DownloadService : Wraps a DownloadManager and forwards commands to it. for Scheduler --> onError() won't be called by the internal player engine and the object state remains MediaDataSource) transfers a MediaPlayer object in the Idle state to the� The download manager will conduct the download in the background, taking care of HTTP interactions and retrying downloads after failures or across� ExoPlayer provides functionality to download media for offline playback. DownloadService : Wraps a DownloadManager and forwards commands to it. for Scheduler --> Thus the MediaPlayer buffers it as if it were a file from a web server. I took the same class provided in that answer and just tweaked it to fit my� onError() won't be called by the internal player engine and the object state remains MediaDataSource) transfers a MediaPlayer object in the Idle state to the� The download manager will conduct the download in the background, taking care of HTTP interactions and retrying downloads after failures or across� ExoPlayer provides functionality to download media for offline playback. DownloadService : Wraps a DownloadManager and forwards commands to it. for Scheduler --> onError() won't be called by the internal player engine and the object state remains MediaDataSource) transfers a MediaPlayer object in the Idle state to the�