The vast majority of systems use block level caching. There is no way of knowing to which file the data belongs. So the basic criteria, to keep data cached, is how often data blocks are used. Because parts of a file could be in the cache and other parts not, this could lead to unexpected play back interruptions. There is also no mechanism for file prioritization.