Repository: openmeetings Updated Branches: refs/heads/master 057719dec -> f8f2799cb
[OPENMEETINGS-1641] rewind on click is added Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/f8f2799c Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/f8f2799c Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/f8f2799c Branch: refs/heads/master Commit: f8f2799cb1b3a225998d3887f9468070d4d0a2e7 Parents: 057719d Author: Maxim Solodovnik <[email protected]> Authored: Sun Sep 10 14:37:35 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Sun Sep 10 14:37:35 2017 +0700 ---------------------------------------------------------------------- .../org/apache/openmeetings/web/room/wb/wb.js | 29 ++++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/f8f2799c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js index f33c81d..4edf5c1 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js @@ -49,17 +49,17 @@ var Player = (function() { return props.reduce((result, key) => { result[key] = _o[key]; return result; }, {}); } - player.create = function(canvas, _o) { + player.create = function(canvas, _o, _role) { let vid = $('<video>').hide().attr('class', 'wb-video slide-' + canvas.slide).attr('id', 'wb-video-' + _o.uid) .attr("width", _o.width).attr("height", _o.height) .append($('<source>').attr('type', 'video/mp4').attr('src', _o._src)); - $('body').append(vid); + $('#wb-tab-' + canvas.wbId).append(vid); new fabric.Image.fromURL(_o._poster, function(poster) { new fabric.Image(vid[0], {}, function (video) { video.visible = false; poster.width = _o.width; poster.height = _o.height; - let paused = true; + let paused = true, playable = false; let trg = new fabric.Triangle({ left: 2.7 * rad , top: _o.height - 2.5 * rad @@ -131,8 +131,10 @@ var Player = (function() { }; cProgress.on({ 'mousedown': function (evt) { - video.getElement().currentTime = (evt.e.offsetX - evt.target.aCoords.bl.x - cProgress.aCoords.bl.x) - * video.getElement().duration / cProgress.width; + let _ptr = canvas.getPointer(evt.e) + , ptr = canvas._normalizePointer(group, _ptr) + , l = (group.width / 2 + ptr.x) * canvas.getZoom() - cProgress.aCoords.bl.x; + video.getElement().currentTime = l * video.getElement().duration / cProgress.width; updateProgress(); } }); @@ -212,9 +214,9 @@ var Player = (function() { group.on({ 'mouseover': function() { - play.visible = true; - cProgress.visible = true; - progress.visible = true; + play.visible = playable; + cProgress.visible = playable; + progress.visible = playable; canvas.renderAll(); } , 'mouseout': function() { @@ -224,6 +226,10 @@ var Player = (function() { canvas.renderAll(); } }); + group.setPlayable = function(_r) { + playable = _r !== NONE; + }; + group.setPlayable(_role); canvas.add(group); canvas.renderAll(); player.modify(group, _o); @@ -1294,6 +1300,11 @@ var Wb = function() { t = a.find('.tools'), s = a.find(".wb-settings"); wb.eachCanvas(function(canvas) { setHandlers(canvas); + canvas.forEachObject(function(__o) { //TODO reduce iterations + if (!!__o && __o.omType === 'Video') { + __o.setPlayable(role); + } + }); }); internalInit(); } @@ -1350,7 +1361,7 @@ var Wb = function() { APointer().create(canvases[o.slide], o); break; case 'video': - Player.create(canvases[o.slide], o); + Player.create(canvases[o.slide], o, role); break; default: var __o = _findObject(o);
