diff --git a/embed/core.js b/embed/core.js index 8930e3f0..42536729 100644 --- a/embed/core.js +++ b/embed/core.js @@ -779,7 +779,10 @@ MistPlayer.prototype.report = function(msg) { MistPlayer.prototype.unload = function(){ this.addlog('Unloading..'); if (('pause' in this) && (this.pause)) { this.pause(); } - if ('updateSrc' in this) { this.updateSrc(''); this.load(); } + if ('updateSrc' in this) { + this.updateSrc(''); + this.element.load(); //dont use this.load() to avoid interrupting play/pause + } this.timer.clear(); this.target.innerHTML = ''; }; diff --git a/embed/wrappers/dashjs.js b/embed/wrappers/dashjs.js index 07215c04..c5bc4493 100644 --- a/embed/wrappers/dashjs.js +++ b/embed/wrappers/dashjs.js @@ -82,13 +82,19 @@ p.prototype.build = function (options,callback) { break; } } - me.adderror(msg); - },true); + //prevent onerror loops + if (e.target == me.element) { + e.message = msg; + } + else { + me.adderror(msg); + } + }); var events = ['abort','canplay','canplaythrough','durationchange','emptied','ended','interruptbegin','interruptend','loadeddata','loadedmetadata','loadstart','pause','play','playing','ratechange','seeked','seeking','stalled','volumechange','waiting']; for (var i in events) { ele.addEventListener(events[i],function(e){ me.addlog('Player event fired: '+e.type); - },true); + }); } var player = dashjs.MediaPlayer().create(); diff --git a/embed/wrappers/html5.js b/embed/wrappers/html5.js index 7f9e13e6..073bd26f 100644 --- a/embed/wrappers/html5.js +++ b/embed/wrappers/html5.js @@ -159,7 +159,13 @@ p.prototype.build = function (options) { break; } } - me.adderror(msg); + //prevent onerror loops + if (e.target == me.element) { + e.message = msg; + } + else { + me.adderror(msg); + } }); var events = ['abort','canplay','canplaythrough','durationchange','emptied','ended','interruptbegin','interruptend','loadeddata','loadedmetadata','loadstart','pause','play','playing','ratechange','seeked','seeking','stalled','volumechange','waiting','progress']; for (var i in events) { diff --git a/embed/wrappers/videojs.js b/embed/wrappers/videojs.js index 3facb28d..fde60e77 100644 --- a/embed/wrappers/videojs.js +++ b/embed/wrappers/videojs.js @@ -132,13 +132,19 @@ p.prototype.build = function (options) { break; } } - me.adderror(msg); + //prevent onerror loops + if (e.target == me.element) { + e.message = msg; + } + else { + me.adderror(msg); + } }); var events = ['abort','canplay','canplaythrough','durationchange','emptied','ended','interruptbegin','interruptend','loadeddata','loadedmetadata','loadstart','pause','play','playing','ratechange','seeked','seeking','stalled','volumechange','waiting','progress']; for (var i in events) { ele.addEventListener(events[i],function(e){ me.addlog('Player event fired: '+e.type); - },true); + }); } return cont;