diff --git a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java index 70d6cc9fc3364820494ef9bfcce4bf5fabfdce67..934ba043d7067e9ec7b8dc8467c6233d95197d44 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoChapterEditController.java @@ -88,6 +88,7 @@ public class VideoChapterEditController extends BasicController { //video preview videoDisplayCtr = new VideoDisplayController(ureq, getWindowControl(), entry, false, false, false, false, null, false, false, null, false); + videoDisplayCtr.setTimeUpdateListener(true); listenTo(videoDisplayCtr); videoDisplayCtr.reloadVideo(ureq); mainVC.put("video", videoDisplayCtr.getInitialComponent()); diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java index 21d097eeef78429ed87842b8c5865e1c061ada4a..54d3d8c845befe85d2b9cc0f0b427d0bd3fb9e26 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java @@ -145,6 +145,10 @@ public class VideoDisplayController extends BasicController { } } + public void setTimeUpdateListener(boolean enable) { + mainVC.contextPut("listenTimeUpdate", enable); + } + private void initMediaElementJs() { // load mediaelementjs player, speed and sourcechooser pluginss String[] cssPath; @@ -304,7 +308,7 @@ public class VideoDisplayController extends BasicController { String currentTime = ureq.getHttpReq().getParameter("currentTime"); String duration = ureq.getHttpReq().getParameter("duration"); String src = ureq.getHttpReq().getParameter("src"); - logDebug(cmd + " " + currentTime + " " + duration + " " + src, null); + //logDebug(cmd + " " + currentTime + " " + duration + " " + src, null); switch(cmd) { case "play": fireEvent(ureq, new VideoEvent(VideoEvent.PLAY, currentTime, duration)); @@ -318,6 +322,9 @@ public class VideoDisplayController extends BasicController { case "ended": fireEvent(ureq, new VideoEvent(VideoEvent.ENDED, currentTime, duration)); break; + case "timeupdate": + fireEvent(ureq, new VideoEvent(VideoEvent.TIMEUPDATE, currentTime, duration)); + break; } updateGUIPreferences(ureq, src); } diff --git a/src/main/java/org/olat/modules/video/ui/VideoEvent.java b/src/main/java/org/olat/modules/video/ui/VideoEvent.java index fb30bbe2369a5c0960e6ca53744ca7bd4bac40cc..d0a9bbdcd8a4e5a5b812709cec7f22a577a6d4cc 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoEvent.java +++ b/src/main/java/org/olat/modules/video/ui/VideoEvent.java @@ -34,6 +34,7 @@ public class VideoEvent extends Event { public static final String PAUSE = "pause"; public static final String SEEKED = "seeked"; public static final String ENDED = "ended"; + public static final String TIMEUPDATE = "timeupdate"; private final String timeCode; private final String duration; diff --git a/src/main/java/org/olat/modules/video/ui/_content/video_run.html b/src/main/java/org/olat/modules/video/ui/_content/video_run.html index 344692d36f813fc8b30874f4ef79ce7922a5e233..89a713b52e87b75354a9d7da57c73ce7b405fe79 100644 --- a/src/main/java/org/olat/modules/video/ui/_content/video_run.html +++ b/src/main/java/org/olat/modules/video/ui/_content/video_run.html @@ -61,6 +61,15 @@ $r.openNoResponseJavaScriptCommand("seeked"), 'currentTime', mediaElement.currentTime, 'src', mediaElement.src, 'duration', mediaElement.duration); } }, false); + + #if($r.isTrue($listenTimeUpdate)) + mediaElement.addEventListener('timeupdate', function(e) { + if (!o_info.linkbusy) { + $r.openNoResponseJavaScriptCommand("timeupdate"), 'currentTime', mediaElement.currentTime, 'src', mediaElement.src, 'duration', mediaElement.duration); + } + }, false); + #end + ## listen to end events, fired when movie is finished mediaElement.addEventListener('ended', function(e) { if (!o_info.linkbusy) {