comparison core.js @ 1474:cb98283ece7e

Feature #1266: Checks for fragments fully played implemented
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Wed, 02 Dec 2015 12:05:08 +0000
parents df527e7b1f83
children 888292c88c33
comparison
equal deleted inserted replaced
1473:df527e7b1f83 1474:cb98283ece7e
2184 return false; 2184 return false;
2185 } 2185 }
2186 } 2186 }
2187 return true; 2187 return true;
2188 }; 2188 };
2189
2190 this.checkFragmentsFullyPlayed = function ()
2191 {
2192 // Checks the entire file has been played back
2193 // NOTE ! This will return true IF playback is Looped!!!
2194 if (audioEngineContext.loopPlayback)
2195 {
2196 console.log("WARNING - Looped source: Cannot check fragments are fully played");
2197 return true;
2198 }
2199 var check_pass = true;
2200 var error_obj = [];
2201 for (var i = 0; i<audioEngineContext.audioObjects.length; i++)
2202 {
2203 var object = audioEngineContext.audioObjects[i];
2204 var time = object.buffer.duration;
2205 var metric = object.metric;
2206 var passed = false;
2207 for (var j=0; j<metric.listenTracker.length; j++)
2208 {
2209 var bt = metric.listenTracker[j].getElementsByTagName('buffertime');
2210 var start_time = Number(bt[0].getAttribute('start'));
2211 var stop_time = Number(bt[0].getAttribute('stop'));
2212 var delta = stop_time - start_time;
2213 if (delta >= time)
2214 {
2215 passed = true;
2216 break;
2217 }
2218 }
2219 if (passed == false)
2220 {
2221 check_pass = false;
2222 console.log("Continue listening to track-"+i);
2223 error_obj.push(i);
2224 }
2225 }
2226 if (check_pass == false)
2227 {
2228 var str_start = "You have not listened to fragments ";
2229 for (var i=0; i<error_obj.length; i++)
2230 {
2231 str_start += error_obj[i];
2232 if (i != error_obj.length-1)
2233 {
2234 str_start += ', ';
2235 }
2236 }
2237 str_start += ". Please keep listening";
2238 console.log("[ALERT]: "+str_start);
2239 alert(str_start);
2240 }
2241 };
2189 } 2242 }