Okay, so we use a JSON player for the main video zone in our campaigns, and I am seeing some issues with some videos behaving as though they are corrupted (either being skipped entirely or playing for ~1 second before going to the next video), though I can locate the video in the caching folder by referencing the cachingMap.xml and consistently those same videos will play flawlessly in WMP, despite behaving as outlined above when SignagePlayer.exe attempts to play them.
I've written a custom application that at startup parses the cachingMap to build a dictionary of the hashed and unhashed filenames for use in my custom playback reporting functionality, during the process of which it also compares the cached file's MD5 hash with that of the files located on the server to which the JSON list points to help me spot potential corruption issues, before my application launches SignagePlayer.exe.
I have been informed however that the expiration values in the cachingMap are not in fact utilized, and that files will not be updated unless the filename changes, which is unacceptable for us, since we share content between multiple platforms, our JSON lists are programatically compiled using data from one of those platforms, and being able to update content across our entire network without changing filenames is somewhat mission critical for us.
So, what I need to know is what I need to do to manage this process without deleting the entire caching directory and re-registering the station when I need a file currently cached on the player to be replaced with an updated version using the same filename. I can easily enough have my reporting application delete individual files from the caching directory if the MD5 hash for the locally cached file no longer matches the MD5 of the corresponding file currently on the server, but I am led to believe that this alone would not be sufficient, because of the cachingMap.xml itself.
Can someone outline for me the behavior of the JSON player, as pertains to the logic governing when content gets downloaded? I would expect it to be something along the lines of if(file.exists) {file.play()} else {file.download()}. Is there actually such logic, or does the player rely on the lastDownloadTime value found in cachingMap.xml?