Media Cache
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.
Documentation
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
You can use this extension with built in video player. You can also use it with my video player extension or atom developers video background extension.
Donations
If you like my free extensions and find them useful then you can donate to help me make more useful extensions. For further queries you can pm me.
I hope you find this extension useful. And as always I will be waiting for you super awesome reviews and suggestions.
Hello @zainulhassan this extension looks nice and I think this is what I have been looking for so that I can give my users to play video offline but I have the question!
1. Does this extension force the user do download the video so that the user will play it offline or after caching then it makes the video to play offline?
2. What is the real meaning of caching vs downloading?
My point is I don’t what the user to download the video because after they download it they will share the video so I want them to play only on my app but offline.
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