Media cache is a simple extension based on Media Loader library that help to cache video and audio files to provide a smooth and friendly user experience. If your app loads videos or audio files from internet then media cache can help you to save user’s precious data and cache video or audio so you wont have to load it again. Once a media is fully cached you can use it even if the user is offline. Lets jump into docs.
This block is triggered when loading progress is changed. You can use the values provided by this block for a better user experience
This block is triggered when there is an error while loading media
Use this block to initialize Media Loader. You need to initialize loader before using any other block.
Directory Name : Specify a name for caching folder
Max File Count : Maximum number of files that can be stored in cache folder
Max File Size : Specify maximum file size for cache file in Mbs
Max File Time Limit : No of days a file should be kept safe
Start download listener for a specific url
Stop download listener for a specific url
Pause download for a specific url
Resume download for a specific url
Get a url that will be used by Media Loader library to cache file. You can pass the resulting url from this block as a source for the media player
I implemented this extension to my app. But there are some problems:
It takes too long to start playing.
I guess for big files it’s good, like a movie or a video, but in my case, I use it for music (~4MB audio files) which takes more time to play, than simply downloading the file and then playing it. Maybe this is because of problem #2:
My server doesn’t provide Content-Length header, so the OnProgressChanged fires only at 100%. Perhaps this is why it takes so long to start playing the song. Is there some way to deal with this? In situations where the content-length is unknown?
In older android phone (android 6.0.1) the music plays botched, like : starting, skipping 30s, playing 3s, skipping 30s, playing again, skipping again, the end. It seems like a problem with the encoding process perhaps? In newer android phones this didn’t happen.
Most of the times, perhaps every time, the song plays to 60-70% and then just stops. Very weird, I thought it was because of my server’s headers, but it’s not. Also the cached file is complete, it’s just the .GetUrl that does this.
These problems made the extension unworkable for me. Although I love the concept. It’s extremely useful. So I’d like to hear from you.
Note: I used it on AI2, not Kodular.
Note 2: The aia demo doesn’t load in AI2. But the extension does. You might want to look at that.
Thank you very much
Fotios TSF Anonwins
edit: Also another thing: the GetCacheFilePath returns usually wrong path: it has .tmp in the end but the actual file is without .tmp, and other times the opposite. So I solved this by checking for both paths: with .tmp and without .tmp