CappielloAntonio / tempo

An open source and lightweight music client for Subsonic, designed and built natively for Android.
GNU General Public License v3.0
867 stars 39 forks source link

[Feature Request] - More aggresive caching during playback #102

Closed SinTan1729 closed 7 months ago

SinTan1729 commented 8 months ago

Summary

The caching of songs should be more aggresive during playback.

Description

Add an option to cache the whole song currently being played, or even better, cache the current song and the next song.

Use Case

I'm not sure exactly how long, but currently, Tempo caches around 30 seconds of the song at a time. This is usually fine. But if I'm traveling, on a bus, or walking around in University, I have patchy connection as I connect and disconnect from WiFi. So the playback stops intermittently. If the caching were better, this won't happen.

Additional context

Substreamer has a similar option, which does solve this problem somewhat.

Cambi0nn commented 7 months ago

Would be nice. Perhaps even with a setting to set how far ahead you want to cache so people can set it to their liking. I generally like to set it a few songs ahead as memory isn't an issue on my phone and it's useful when traveling trough an area with no network (which happens every now and then for me), but that might be a bit too extreme for certain older low-end hardware.

CappielloAntonio commented 7 months ago

I implemented this function by setting a minimum buffering time ranging from a few seconds to over five minutes, beyond which I don't think it's necessary.

The multipliers used are Minimum (.1), Moderate (1), Aggressive (4), Extreme (8) which must be multiplied by the default time of the music player which is 50 seconds.

The new version is now online.