diff --git a/record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js b/record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js index b53f42ab7c4ea046fabbdf9f842d62b056bca4d7..5f8f85b6f24f18fc5f30495af69a0ee3ce081615 100755 --- a/record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js +++ b/record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js @@ -520,21 +520,26 @@ svgobj.setAttribute('data', shapes_svg); svgobj.setAttribute('height', '100%'); svgobj.setAttribute('width', '100%'); -svgobj.addEventListener('load', function() { - console.log("got svgobj 'load' event"); +var setupWriting = function() { runPopcorn(); - if (svjobjLoaded) { - return; - } - svjobjLoaded = true; - generateThumbnails(); var p = Popcorn("#video"); p.currentTime(defineStartTime()); removeLoadingScreen(); +} + +svgobj.addEventListener('load', function() { + console.log("got svgobj 'load' event"); + + if (svjobjLoaded) { + return; + } + svjobjLoaded = true; + + window.await_video_loaded(setupWriting); }, false); // Fetches the metadata associated with the recording and uses it to configure diff --git a/record-and-playback/presentation/playback/presentation/0.9.0/playback.js b/record-and-playback/presentation/playback/presentation/0.9.0/playback.js index 7482f368876ca6c3faff1bc47157995c2e52d194..d87af1f4f8d7416a6e9768113228c186db50eaa0 100755 --- a/record-and-playback/presentation/playback/presentation/0.9.0/playback.js +++ b/record-and-playback/presentation/playback/presentation/0.9.0/playback.js @@ -422,6 +422,24 @@ load_spinner = function(){ spinner = new Spinner(opts).spin(target); }; +var video_loaded_callbacks = []; +var video_loaded = false; + +var notify_video_loaded = function() { + video_loaded = true; + for (i = 0; i < video_loaded_callbacks.length; i++) { + video_loaded_callbacks[i](); + } +}; +window.await_video_loaded = function(callback) { + if (video_loaded) { + /* Video is already loaded, just immediately execute the callback */ + callback(); + } else { + video_loaded_callbacks.push(callback); + } +} + document.addEventListener("DOMContentLoaded", function() { console.log("==DOM content loaded"); @@ -433,6 +451,11 @@ document.addEventListener("DOMContentLoaded", function() { google_frame_warning(); } + load_spinner(); + console.log("==Hide playback content"); + $("#playback-content").css('visibility', 'hidden'); + + if (checkUrl(RECORDINGS + '/video/webcams.webm') == true) { hasVideo = true; $("#audio-area").attr("style", "display:none;"); @@ -443,10 +466,6 @@ document.addEventListener("DOMContentLoaded", function() { load_audio(); } - load_spinner(); - console.log("==Hide playback content"); - $("#playback-content").css('visibility', 'hidden'); - //load up the acorn controls console.log("==Loading acorn media player "); $('#video').acornMediaPlayer({ @@ -457,6 +476,8 @@ document.addEventListener("DOMContentLoaded", function() { swapVideoPresentation(); }); + notify_video_loaded(); + resizeComponents(); }, false);