Repository: wicket Updated Branches: refs/heads/wicket-7.x b56756314 -> b3c813c5c
WICKET-6160 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b3c813c5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b3c813c5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b3c813c5 Branch: refs/heads/wicket-7.x Commit: b3c813c5ceeb06095438d51f467cf9df7b8404ec Parents: b567563 Author: Tobias Soloschenko <[email protected]> Authored: Tue May 3 21:45:20 2016 +0200 Committer: Tobias Soloschenko <[email protected]> Committed: Tue May 3 21:46:21 2016 +0200 ---------------------------------------------------------------------- .../markup/html/media/MediaComponent.java | 69 ++++++++++++++++++++ .../org/apache/wicket/examples/media/Home.css | 4 +- .../org/apache/wicket/examples/media/Home.html | 2 +- .../org/apache/wicket/examples/media/Home.java | 39 +++++------ 4 files changed, 90 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/b3c813c5/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java index 88a6076..cb1b4cf 100755 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaComponent.java @@ -128,6 +128,8 @@ public abstract class MediaComponent extends WebMarkupContainer private Cors crossOrigin; + private String type; + private PageParameters pageParameters; private final ResourceReference resourceReference; @@ -337,6 +339,12 @@ public abstract class MediaComponent extends WebMarkupContainer { tag.put("crossorigin", cors.getRealName()); } + + String type = getType(); + if (type != null) + { + tag.put("type", type); + } } /** @@ -608,4 +616,65 @@ public abstract class MediaComponent extends WebMarkupContainer { this.crossOrigin = crossOrigin; } + + /** + * Gets the type + * + * @see {@link #setType(String)} + * + * @return the type of this media element + */ + public String getType() + { + return type; + } + + /** + * Sets the type<br> + * <br> + * + * * The following list shows some examples of how to use the codecs= MIME parameter in the type + * attribute.<br> + * <br> + * + * H.264 Constrained baseline profile video (main and extended video compatible) level 3 and + * Low-Complexity AAC audio in MP4 container<br> + * <source src='video.mp4' <b>type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'</b>><br> + * H.264 Extended profile video (baseline-compatible) level 3 and Low-Complexity AAC audio in + * MP4 container<br> + * <source src='video.mp4' <b>type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'</b>><br> + * H.264 Main profile video level 3 and Low-Complexity AAC audio in MP4 container<br> + * <source src='video.mp4' <b>type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'</b>><br> + * H.264 'High' profile video (incompatible with main, baseline, or extended profiles) level 3 + * and Low-Complexity AAC audio in MP4 container<br> + * <source src='video.mp4' <b>type='video/mp4; codecs="avc1.64001E, mp4a.40.2"'</b>><br> + * MPEG-4 Visual Simple Profile Level 0 video and Low-Complexity AAC audio in MP4 container<br> + * <source src='video.mp4' <b>type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'</b>><br> + * MPEG-4 Advanced Simple Profile Level 0 video and Low-Complexity AAC audio in MP4 container + * <br> + * <source src='video.mp4' <b>type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"'</b>><br> + * MPEG-4 Visual Simple Profile Level 0 video and AMR audio in 3GPP container<br> + * <source src='video.3gp' <b>type='video/3gpp; codecs="mp4v.20.8, samr"'</b>><br> + * Theora video and Vorbis audio in Ogg container<br> + * <source src='video.ogv' <b>type='video/ogg; codecs="theora, vorbis"'</b>><br> + * Theora video and Speex audio in Ogg container<br> + * <source src='video.ogv' <b>type='video/ogg; codecs="theora, speex"'</b>><br> + * Vorbis audio alone in Ogg container<br> + * <source src='audio.ogg' <b>type='audio/ogg; codecs=vorbis'</b>><br> + * Speex audio alone in Ogg container<br> + * <source src='audio.spx' <b>type='audio/ogg; codecs=speex'</b>><br> + * FLAC audio alone in Ogg container<br> + * <source src='audio.oga' <b>type='audio/ogg; codecs=flac'</b>><br> + * Dirac video and Vorbis audio in Ogg container<br> + * <source src='video.ogv' <b>type='video/ogg; codecs="dirac, vorbis"'</b>><br> + * Theora video and Vorbis audio in Matroska container<br> + * <source src='video.mkv' <b>type='video/x-matroska; codecs="theora, vorbis"'</b>><br> + * + * @param type + * the type of this media element + */ + public void setType(String type) + { + this.type = type; + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/b3c813c5/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.css ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.css b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.css index 45dee80..7240ca4 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.css +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.css @@ -16,14 +16,14 @@ */ video{ float:left; - height:240px; + height:auto; width:320px; margin-bottom:10px; margin-right:10px; } .videoDescription{ float:left; - height:240px; + height:auto; width:300px; margin-bottom:10px; } http://git-wip-us.apache.org/repos/asf/wicket/blob/b3c813c5/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.html ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.html b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.html index 4a1725d..80baf05 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.html +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.html @@ -22,7 +22,7 @@ <!-- Video 3 --> <video wicket:id="video3" ></video> - <div class="videoDescription"><b>Video3</b><br/>The last sample shows a remote video located here: http://media.w3.org/2010/05/video/movie_300.mp4. It can be added by set the url as String instead of adding a ResourceReference.</div> + <div class="videoDescription"><b>Video3</b><br/>The last sample shows a remote video located here: https://w3c-test.org/media/movie_300.mp4. It can be added by set the url as String instead of adding a ResourceReference.</div> <div class="clearer"></div> </div> </body> http://git-wip-us.apache.org/repos/asf/wicket/blob/b3c813c5/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java index d9892f6..2526e19 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/media/Home.java @@ -49,13 +49,14 @@ public final class Home extends WicketExamplePage { // Internal video with several options - Video video1 = new Video("video1", new PackageResourceReference(Home.class, - "video1.mp4").readBuffered(false)); + Video video1 = new Video("video1", + new PackageResourceReference(Home.class, "video1.mp4").readBuffered(false)); video1.setAutoplay(false); video1.setControls(true); video1.setLooping(false); video1.setWidth(320); video1.setHeight(240); + video1.setType("video/mp4"); video1.setPoster(new PackageResourceReference(Home.class, "novideo.gif")); add(video1); @@ -64,12 +65,12 @@ public final class Home extends WicketExamplePage Video video2 = new Video("video2"); video2.setPoster(new PackageResourceReference(Home.class, "novideo.gif")); - Source source2 = new Source("source2", new PackageResourceReference(Home.class, - "video2.mp4")); + Source source2 = new Source("source2", + new PackageResourceReference(Home.class, "video2.mp4")); // Need to be set to true to show the type source2.setDisplayType(true); // the default type is the mime type of the image with no codec information - source2.setType("video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\""); + source2.setType("video/mp4; codecs='avc1.42E01E, mp4a.40.2'"); video2.add(source2); add(video2); @@ -78,27 +79,23 @@ public final class Home extends WicketExamplePage PageParameters pageParameters = new PageParameters(); pageParameters.add("random", UUID.randomUUID().toString()); pageParameters.add("test", "test"); - Video video3 = new Video("video3", "http://media.w3.org/2010/05/video/movie_300.mp4", + Video video3 = new Video("video3", "https://w3c-test.org/media/movie_300.mp4", pageParameters); video3.setPoster(new PackageResourceReference(Home.class, "novideo.gif")); + video3.setType("video/mp4"); add(video3); /* - * // video with track - * Video video4 = new Video("video4", new PackageResourceReference(Home.class, "dummyVideo.m4a")); + * // video with track Video video4 = new Video("video4", new + * PackageResourceReference(Home.class, "dummyVideo.m4a")); * - * // source tag - * Source source4 = new Source("source4", "http://www.mytestpage.xc/video.m4a"); - * source4.setMedia("screen and (device-width:500px)"); - * source4.setType("video/mp4"); - * source4.setDisplayType(true); video4.add(source4); + * // source tag Source source4 = new Source("source4", + * "http://www.mytestpage.xc/video.m4a"); source4.setMedia("screen and (device-width:500px)" + * ); source4.setType("video/mp4"); source4.setDisplayType(true); video4.add(source4); * - * // tack tag - * Track track4 = new Track("track4", new PackageResourceReference(Home.class, "dummySubtitles.vtt")); - * track4.setKind(Kind.subtitles); - * track4.setLabel("Subtitles of video"); - * track4.setSrclang(Locale.GERMANY); - * track4.setDefaultTrack(true); + * // tack tag Track track4 = new Track("track4", new PackageResourceReference(Home.class, + * "dummySubtitles.vtt")); track4.setKind(Kind.subtitles); track4.setLabel( + * "Subtitles of video"); track4.setSrclang(Locale.GERMANY); track4.setDefaultTrack(true); * video4.add(track4); * * add(video4); @@ -109,7 +106,7 @@ public final class Home extends WicketExamplePage public void renderHead(IHeaderResponse response) { super.renderHead(response); - response.render(CssHeaderItem.forReference(new PackageResourceReference(Home.class, - "Home.css"))); + response.render( + CssHeaderItem.forReference(new PackageResourceReference(Home.class, "Home.css"))); } }
