Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1786840&r1=1786839&r2=1786840&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Tue Mar 14 03:59:48 2017 @@ -25,7 +25,6 @@ import static org.apache.openmeetings.we import org.apache.openmeetings.db.dao.record.RecordingDao; import org.apache.openmeetings.db.dto.record.RecordingContainerData; import org.apache.openmeetings.db.entity.file.FileItem; -import org.apache.openmeetings.db.entity.record.Recording; import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.common.AddFolderDialog; import org.apache.openmeetings.web.common.UserPanel; @@ -62,8 +61,8 @@ public class RecordingsPanel extends Use @Override protected void update(AjaxRequestTarget target, FileItem f) { - video.update(target, (Recording)f); - info.update(target, (Recording)f); + video.update(target, f); + info.update(target, f); } }); add(video, info, addFolder);
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java?rev=1786840&r1=1786839&r2=1786840&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java Tue Mar 14 03:59:48 2017 @@ -32,6 +32,7 @@ import org.apache.openmeetings.core.conv import org.apache.openmeetings.core.converter.RecordingConverter; import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao; import org.apache.openmeetings.db.dao.room.RoomDao; +import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.db.entity.record.Recording; import org.apache.openmeetings.db.entity.record.Recording.Status; import org.apache.openmeetings.db.entity.record.RecordingMetaData; @@ -111,38 +112,41 @@ public class VideoInfo extends Panel { update(null, r); } - public VideoInfo update(AjaxRequestTarget target, Recording _r) { - Recording r = _r == null ? new Recording() : _r; - rm.setObject(r); - try { - String name = null; - if (r.getRoomId() != null) { - Room room = getBean(RoomDao.class).get(r.getRoomId()); - if (room != null) { - name = room.getName(); - isInterview = Room.Type.interview == room.getType(); + public VideoInfo update(AjaxRequestTarget target, FileItem _r) { + boolean reConvEnabled = false; + boolean exists = false; + if (_r instanceof Recording) { + Recording r = _r == null ? new Recording() : (Recording)_r; + rm.setObject(r); + exists = r.exists(); + try { + String name = null; + if (r.getRoomId() != null) { + Room room = getBean(RoomDao.class).get(r.getRoomId()); + if (room != null) { + name = room.getName(); + isInterview = Room.Type.interview == room.getType(); + } } + roomName.setObject(name); + } catch (Exception e) { + //no-op } - roomName.setObject(name); - } catch (Exception e) { - //no-op - } - boolean reConvEnabled = false; - if (r.getOwnerId() != null && r.getOwnerId().equals(getUserId()) && r.getStatus() != Status.RECORDING && r.getStatus() != Status.CONVERTING) { - List<RecordingMetaData> metas = getBean(RecordingMetaDataDao.class).getByRecording(r.getId()); - reconvLabel: - if (!metas.isEmpty()) { - for (RecordingMetaData meta : metas) { - if (r.getRoomId() == null || !getRecordingMetaData(r.getRoomId(), meta.getStreamName()).exists()) { - break reconvLabel; + if (r.getOwnerId() != null && r.getOwnerId().equals(getUserId()) && r.getStatus() != Status.RECORDING && r.getStatus() != Status.CONVERTING) { + List<RecordingMetaData> metas = getBean(RecordingMetaDataDao.class).getByRecording(r.getId()); + reconvLabel: + if (!metas.isEmpty()) { + for (RecordingMetaData meta : metas) { + if (r.getRoomId() == null || !getRecordingMetaData(r.getRoomId(), meta.getStreamName()).exists()) { + break reconvLabel; + } } + reConvEnabled = true; } - reConvEnabled = true; } } reConvert.setEnabled(reConvEnabled); - boolean exists = r.exists(); downloadBtn.setEnabled(exists); share.setEnabled(exists); if (target != null) { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java?rev=1786840&r1=1786839&r2=1786840&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java Tue Mar 14 03:59:48 2017 @@ -20,76 +20,74 @@ package org.apache.openmeetings.web.user import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE; +import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.db.entity.record.Recording; +import org.apache.openmeetings.web.common.MainPanel; +import org.apache.openmeetings.web.room.RoomResourceReference; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.media.Source; import org.apache.wicket.markup.html.media.video.Video; import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.request.Url; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.request.resource.ResourceReference; -import org.apache.wicket.request.resource.UrlResourceReference; public class VideoPlayer extends Panel { private static final long serialVersionUID = 1L; private final WebMarkupContainer wait = new WebMarkupContainer("wait"); //FIXME not used private final WebMarkupContainer container = new WebMarkupContainer("container"); - private final Mp4RecordingResourceReference mp4res = new Mp4RecordingResourceReference(); - private final OmVideo player = new OmVideo("player", null); - private final Source mp4 = new Source("mp4", mp4res); + private final Mp4RecordingResourceReference mp4RecRes = new Mp4RecordingResourceReference(); + private final JpgRecordingResourceReference posterRecRes = new JpgRecordingResourceReference(); + private final RoomResourceReference mp4FileRes = new RoomResourceReference(); + private final RoomResourceReference posterFileRes = new RoomResourceReference(); + private final Video player = new Video("player") { + private static final long serialVersionUID = 1L; + + @Override + public boolean isAutoplay() { + return false; + } + + @Override + public boolean hasControls() { + return true; + } + }; + private final Source mp4Rec = new Source("mp4", mp4RecRes); + private final Source mp4File = new Source("mp4", mp4FileRes); public VideoPlayer(String id) { - this(id, null); - } - - public VideoPlayer(String id, Recording r) { super(id); add(container.setOutputMarkupPlaceholderTag(true)); - mp4.setDisplayType(true); - mp4.setType(MP4_MIME_TYPE); - player.add(mp4); + mp4Rec.setDisplayType(true); + mp4Rec.setType(MP4_MIME_TYPE); + mp4File.setDisplayType(true); + mp4File.setType(MP4_MIME_TYPE); + player.add(mp4Rec); container.add(wait.setVisible(false), player); - update(null, r); + update(null, null); } - - public VideoPlayer update(AjaxRequestTarget target, Recording r) { + + public VideoPlayer update(AjaxRequestTarget target, FileItem r) { boolean videoExists = r != null && r.exists(); if (videoExists) { - PageParameters pp = new PageParameters().add("id", r.getId()); - mp4.setPageParameters(pp); - player.recId = r.getId(); + PageParameters pp = new PageParameters(); + if (r instanceof Recording) { + pp.add("id", r.getId()); + mp4Rec.setPageParameters(pp); + player.replace(mp4Rec); + player.setPoster(posterRecRes, pp); + } else { + pp.add("id", r.getId()).add("uid", findParent(MainPanel.class).getClient().getUid()); + mp4File.setPageParameters(pp); + player.replace(mp4File); + player.setPoster(posterFileRes, new PageParameters(pp).add("preview", true)); + } } container.setVisible(videoExists); if (target != null) { target.add(container); } - + return this; } - - private static class OmVideo extends Video { - private static final long serialVersionUID = 1L; - Long recId = null; - - OmVideo(String id, Long recId) { - super(id); - this.recId = recId; - } - - @Override - public boolean isAutoplay() { - return false; - } - - @Override - public boolean hasControls() { - return true; - } - - @Override - public ResourceReference getPoster() { - return recId == null ? null : new UrlResourceReference(Url.parse("recordings/jpg/" + recId)).setContextRelative(true); - } - } }
