Before completing please check that the time, date and timezone have been correctly set on the device running the Player.
Check!
Player Version
windows 3 R301.1-301
Issue
I have a layout with the RSS widget. We get the RSS feed for a customer from the official news distribution service in Austria. It is a paid service and the feed is customized for our client, so I can’t post the link, but I can assure you that it works (99.99% reliable).
Often the newest posts show the text and category correctly but the image (which every post has one) doesn’t show up, at least for one loop (mostly longer). I have figured out the core of the problem but not the reason or a solution: It is because the image(s) don’t get downloaded (for some time). I have more test systems running and when one shows the picture and another don’t I can compare the ticker_[hash] files in the lib-folders and can see that the missing picture just isn’t downloaded. Then I immediately tried the RSS feed and the links to the missing pictures (always the newest ones) on my PC and they always worked just fine and fast.
I have looked for differences in the pictures but all gets preprocessed for us from the agency (same size/resolution, codec, encoder settings) so there are none. I have played with the caching settings and it seams with lower (or synchronized) intervals maybe it get’s a little better, but that’s not a solution (First I have 5/240 for refresh and image refresh, then i synced them and tried 60/60 and 15/15).
Here are all my settings:


And here my design (if it basically can influence the download of the images?):
- Main template
<div class="col1">
<div class="image">[Link|image]</div>
<div class="cat">[category|]</div>
</div>
<div class="col2">
<h1>[Title]</h1>
<div class="description ">[Description]</div>
</div>
- Stylesheet
.image img {
width: 90%;
max-height: 77%;
position: absolute;
left: 8%;
top: 10%;}
.cat {
font-size: 150px;
font-weight: bold;
text-align: left;
color: lightblue;
line-height: 0.75;
position: absolute;
bottom: 0;
opacity: .7;}
.col1{color: white;
position: absolute;
bottom: 0;
width: 40%;
left: 0;
height: 100%;}
.col2{color: white;
position: absolute;
bottom: 0;
width: 60%;
left: 40%;
height: 100%;}
h1 {
font-family: Arial, Verdana, sans-serif;
font-size: 70px;
padding-top: 8%;
padding-left: 5%;
padding-right: 5%;
}
.description {
font-family: Arial, Verdana, sans-serif;
font-size: 56px;
position: absolute;
top: 50%;
padding-left: 5%;
padding-right: 5%;}
- No data
<span style="font-size: 48px; color:#ffffff;">No Data returned from the source</span>
- JS
var i = 0; // Counter for typewriter functions
var txtH = ''; // intermediate storage of heading text
var txtHOld = 'dummy'; // previous heading text (to detect new page)
var txtD = ''; // intermediate storage of description text
var txtDOld = 'dummy'; // previous description text (to detect new page)
var speedH = 25; // Speed for heading typing (ms delay between letters)
var speedD = 12; // Speed for description typing (ms delay between letters)
var typed = true; // finished typing (page complete)
// observed Node: '#content'(contains the seperate slides)
var target = document.querySelector('#content');
// Observer function (executed everytime '#content' or a child of it changes
var observer = new MutationObserver(function(mutations) {
var heading = document.getElementsByClassName("cycle-slide-active")[0].getElementsByTagName("h1")[0];
var descr = document.getElementsByClassName("cycle-slide-active")[0].getElementsByClassName("description")[0];
if(typed) { // save texts of the new slide
txtH = heading.textContent;
txtD = descr.textContent;
}
if (txtH != txtHOld && txtD != txtDOld) { // check if new slide is active
typed = false;
// clear Heading and Description
heading.textContent = "";
descr.textContent = "";
// replace category abreviation with actual category name
setCat(document.getElementsByClassName("cycle-slide-active")[0].getElementsByClassName("cat")[0]);
i=0;
txtDOld = txtD;
txtHOld = txtH;
// start typing the heading in 1000ms
setTimeout(typeWriterH1, 1000);
}
});
// Configuration of the Observer: report changed attributes, subtree and data
var config = { attributes: true, subtree: true, characterData: true };
// start Observer with given target node and config
observer.observe(target, config);
// replaces the abbreviation with the actual category in the given tag
function setCat(catTag) {
var cat = catTag.innerHTML;
switch(cat) {
case "AA":
case "II":
cat = "Politik";
break;
case "CA":
case "CI":
cat = "Chronik";
break;
case "SA":
case "SI":
cat = "Sport";
break;
case "KA":
case "KI":
cat = "Kultur";
break;
case "WA":
case "WI":
cat = "Wirtschaft";
break;
default:
cat = "";
break;
}
catTag.innerHTML = cat;
}
// writes letter by letter of the heading, by being called periodically every speedH ms and adding a span-tag that makes the text that is not visible yet transparent
function typeWriterH1() {
var h1Tag = document.getElementsByClassName("cycle-slide-active")[0].getElementsByTagName("h1")[0];
if (i < txtH.length) {
// print the first i letters
h1Tag.innerHTML = txtH.substring(0,i+1);
i++;
// skip spaces
if (txtH.charAt(i) == ' ') {
h1Tag.innerHTML += txtH.charAt(i);
i++;
}
// add remaining string in a span Element that is set transparent
var transSpan = document.createElement('span')
transSpan.style.opacity= 0;
transSpan.innerHTML = txtH.substring(i,txtH.length);
h1Tag.appendChild(transSpan);
// call the function again in speedH ms
setTimeout(typeWriterH1, speedH);
} else { // heading is printed completely, start typing description
i = 0;
typeWriterD();
}
}
// writes letter by letter of the heading, see above
function typeWriterD() {
var desTag = document.getElementsByClassName("cycle-slide-active")[0].getElementsByClassName("description")[0];
if (i < txtD.length) {
desTag.innerHTML = txtD.substring(0,i+1);
i++;
if (txtD.charAt(i) == ' ') {
desTag.innerHTML += txtD.charAt(i);
i++;
}
var transSpan = document.createElement('span')
transSpan.style.opacity= 0;
transSpan.innerHTML = txtD.substring(i,txtD.length);
desTag.appendChild(transSpan);
setTimeout(typeWriterD, speedD);
} else {
i = 0;
typed = true;
}
}