You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2015/03/12 22:18:13 UTC
[06/34] wicket git commit: WICKET-5819 Support for HTML 5 media tags
(audio / video)
WICKET-5819 Support for HTML 5 media tags (audio / video)
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ac7cf808
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ac7cf808
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ac7cf808
Branch: refs/heads/master
Commit: ac7cf808d07440a039d9b0c70d5903109ee16303
Parents: 154b5d1
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun Feb 15 19:28:44 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sun Feb 15 19:28:44 2015 +0200
----------------------------------------------------------------------
.../markup/html/media/MediaComponent.java | 165 ++++++++++---------
.../media/MediaStreamingResourceReference.java | 52 +++---
.../wicket/markup/html/media/MediaUtils.java | 49 ------
.../markup/html/media/PartWriterCallback.java | 55 +++----
.../apache/wicket/markup/html/media/Source.java | 66 +++-----
.../apache/wicket/markup/html/media/Track.java | 74 ++++-----
.../wicket/markup/html/media/audio/Audio.java | 12 --
.../wicket/markup/html/media/video/Video.java | 26 +--
.../wicket/markup/html/media/Application.java | 37 -----
.../html/media/MediaTagsExtendedTestPage.java | 2 -
.../wicket/markup/html/media/MediaTagsTest.java | 75 ++++-----
.../markup/html/media/MediaTagsTestPage.java | 3 +-
12 files changed, 235 insertions(+), 381 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/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 4131439..20f39ec 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
@@ -23,7 +23,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
/**
- * The media component is used to provide basic functionality to the video and audo component. The
+ * The media component is used to provide basic functionality to the video and audio component. The
* given media streaming resource reference supports Content-Ranges and other stuff to make the
* audio and video playback smooth.
*
@@ -32,11 +32,10 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
*/
public abstract class MediaComponent extends WebMarkupContainer
{
-
private static final long serialVersionUID = 1L;
/**
- * To be used for the crossorigin attribute
+ * To be used for the <em>crossorigin</em> attribute
*
* @see {@link #setCrossOrigin(Cors)}
*/
@@ -44,7 +43,7 @@ public abstract class MediaComponent extends WebMarkupContainer
{
ANONYMOUS("anonymous"), USER_CREDENTIALS("user-credentials"), NO_CORS("");
- private String realName;
+ private final String realName;
private Cors(String realName)
{
@@ -58,7 +57,7 @@ public abstract class MediaComponent extends WebMarkupContainer
}
/**
- * To be used for the preload attribute
+ * To be used for the <em>preload</em> attribute
*
* @see {@link #setPreload(Preload)}
*/
@@ -66,7 +65,7 @@ public abstract class MediaComponent extends WebMarkupContainer
{
NONE("none"), METADATA("metadata"), AUTO("auto");
- public String realName;
+ public final String realName;
private Preload(String realname)
{
@@ -79,14 +78,13 @@ public abstract class MediaComponent extends WebMarkupContainer
}
}
- // use Boolean instead of elementary data types to get a lightweight component
- private Boolean autoplay;
+ private boolean autoplay;
- private Boolean loop;
+ private boolean loop;
- private Boolean muted;
+ private boolean muted;
- private Boolean controls;
+ private boolean controls = true;
private Preload preload;
@@ -98,138 +96,147 @@ public abstract class MediaComponent extends WebMarkupContainer
private Cors crossOrigin;
- private PageParameters pageParameters;
+ private final PageParameters pageParameters;
- private MediaStreamingResourceReference mediaStreamingResourceReference;
+ private final MediaStreamingResourceReference mediaStreamingResourceReference;
- private String url;
+ private final String url;
+ /**
+ * Constructor.
+ *
+ * @param id
+ * The component id
+ */
public MediaComponent(String id)
{
- super(id);
+ this(id, null, null, null, null);
}
+ /**
+ * Constructor.
+ *
+ * @param id
+ * The component id
+ * @param model
+ * The component model
+ */
public MediaComponent(String id, IModel<?> model)
{
- super(id, model);
+ this(id, model, null, null, null);
}
+ /**
+ * Constructor.
+ *
+ * @param id
+ * The component id
+ * @param mediaStreamingResourceReference
+ */
public MediaComponent(String id, MediaStreamingResourceReference mediaStreamingResourceReference)
{
- this(id);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
+ this(id, null, null, null,mediaStreamingResourceReference);
}
public MediaComponent(String id, IModel<?> model,
MediaStreamingResourceReference mediaStreamingResourceReference)
{
- this(id, model);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
+ this(id, model, null, null, mediaStreamingResourceReference);
}
public MediaComponent(String id,
MediaStreamingResourceReference mediaStreamingResourceReference,
PageParameters pageParameters)
{
- this(id);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
- this.pageParameters = pageParameters;
+ this(id, null, null, pageParameters, mediaStreamingResourceReference);
}
public MediaComponent(String id, IModel<?> model,
MediaStreamingResourceReference mediaStreamingResourceReference,
PageParameters pageParameters)
{
- this(id, model);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
- this.pageParameters = pageParameters;
+ this(id, model, null, pageParameters, mediaStreamingResourceReference);
}
public MediaComponent(String id, String url)
{
- this(id);
- this.url = url;
+ this(id, null, url, null, null);
}
public MediaComponent(String id, IModel<?> model, String url)
{
- this(id, model);
- this.url = url;
- }
-
- public MediaComponent(String id, String url, PageParameters pageParameters)
- {
- this(id);
- this.url = url;
- this.pageParameters = pageParameters;
+ this(id, model, url, null, null);
}
- public MediaComponent(String id, IModel<?> model, String url, PageParameters pageParameters)
+ private MediaComponent(String id, IModel<?> model, String url, PageParameters pageParameters,
+ MediaStreamingResourceReference mediaStreamingResourceReference)
{
- this(id, model);
+ super(id, model);
this.url = url;
this.pageParameters = pageParameters;
+ this.mediaStreamingResourceReference = mediaStreamingResourceReference;
}
@Override
protected void onComponentTag(ComponentTag tag)
{
super.onComponentTag(tag);
+
// The time management is used to set the start / stop
// time in seconds of the movie to be played back
String timeManagement = "";
if (startTime != null)
{
- timeManagement = timeManagement += "#t=" + startTime +
+ timeManagement += "#t=" + startTime +
(endTime != null ? "," + endTime : "");
}
if (mediaStreamingResourceReference != null)
{
- tag.put("src",
- RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters) +
- timeManagement);
+ CharSequence urlToMediaReference = RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters);
+ tag.put("src", urlToMediaReference + timeManagement);
}
-
- if (url != null)
+ else if (url != null)
{
tag.put("src", url + timeManagement);
}
- if (mediaGroup != null)
+ String mg = getMediaGroup();
+ if (mg != null)
{
- tag.put("mediagroup", mediaGroup);
+ tag.put("mediagroup", mg);
}
- if (autoplay != null && autoplay)
+ if (isAutoplay())
{
tag.put("autoplay", "autoplay");
}
- if (loop != null && loop)
+ if (isLooping())
{
tag.put("loop", "loop");
}
- if (muted != null && muted)
+ if (isMuted())
{
tag.put("muted", "muted");
}
- // Use getter here because controls should be visible by default
- if (getControls())
+ if (hasControls())
{
tag.put("controls", "controls");
}
- if (preload != null)
+ Preload _preload = getPreload();
+ if (_preload != null)
{
- tag.put("preload", preload.getRealName());
+ tag.put("preload", _preload.getRealName());
}
- if (crossOrigin != null)
+ Cors cors = getCrossOrigin();
+ if (cors != null)
{
- tag.put("crossorigin", crossOrigin.getRealName());
+ tag.put("crossorigin", cors.getRealName());
}
}
@@ -238,9 +245,9 @@ public abstract class MediaComponent extends WebMarkupContainer
*
* @return If the playback is autoplayed on load
*/
- public Boolean getAutoplay()
+ public boolean isAutoplay()
{
- return autoplay != null ? autoplay : false;
+ return autoplay;
}
/**
@@ -249,7 +256,7 @@ public abstract class MediaComponent extends WebMarkupContainer
* @param autoplay
* If the playback is autoplayed on load
*/
- public void setAutoplay(Boolean autoplay)
+ public void setAutoplay(boolean autoplay)
{
this.autoplay = autoplay;
}
@@ -259,9 +266,9 @@ public abstract class MediaComponent extends WebMarkupContainer
*
* @return If the playback is looped
*/
- public Boolean getLoop()
+ public boolean isLooping()
{
- return loop != null ? loop : false;
+ return loop;
}
/**
@@ -270,7 +277,7 @@ public abstract class MediaComponent extends WebMarkupContainer
* @param loop
* If the playback is looped
*/
- public void setLoop(Boolean loop)
+ public void setLooping(boolean loop)
{
this.loop = loop;
}
@@ -280,9 +287,9 @@ public abstract class MediaComponent extends WebMarkupContainer
*
* @return If the playback is muted initially
*/
- public Boolean getMuted()
+ public boolean isMuted()
{
- return muted != null ? muted : false;
+ return muted;
}
/**
@@ -291,7 +298,7 @@ public abstract class MediaComponent extends WebMarkupContainer
* @param muted
* If the playback is muted initially
*/
- public void setMuted(Boolean muted)
+ public void setMuted(boolean muted)
{
this.muted = muted;
}
@@ -301,9 +308,9 @@ public abstract class MediaComponent extends WebMarkupContainer
*
* @return if the controls are going to displayed
*/
- public Boolean getControls()
+ public boolean hasControls()
{
- return controls != null ? controls : true;
+ return controls;
}
/**
@@ -330,21 +337,23 @@ public abstract class MediaComponent extends WebMarkupContainer
}
/**
- * Sets the type of preload <br>
- * <br>
- * <b>none</b>: Hints to the user agent that either the author does not expect the user to need
- * the media resource, or that the server wants to minimise unnecessary traffic.<br>
- * <br>
- * <b>metadata</b>: Hints to the user agent that the author does not expect the user to need the
+ * Sets the type of preload.
+ * <ul>
+ * <li><b>none</b>: Hints to the user agent that either the author does not expect the user to need
+ * the media resource, or that the server wants to minimise unnecessary traffic.</li>
+ *
+ * <li><b>metadata</b>: Hints to the user agent that the author does not expect the user to need the
* media resource, but that fetching the resource metadata (dimensions, first frame, track list,
- * duration, etc) is reasonable.<br>
- * <br>
- * <b>auto</b>: Hints to the user agent that the user agent can put the user's needs first
+ * duration, etc) is reasonable.</li>
+ *
+ * <li><b>auto</b>: Hints to the user agent that the user agent can put the user's needs first
* without risk to the server, up to and including optimistically downloading the entire
- * resource.
+ * resource.</li>
+ * </ul>
+ * </p>
*
* @param preload
- * the preload
+ * the type of the preload
*/
public void setPreload(Preload preload)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
index 54d9442..6231eed 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaStreamingResourceReference.java
@@ -21,16 +21,15 @@ import java.util.Locale;
import org.apache.wicket.Application;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.core.util.resource.PackageResourceStream;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;
-import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.http.WebRequest;
import org.apache.wicket.request.http.WebResponse;
-import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.request.resource.IResource;
-import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.request.resource.PackageResource;
+import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.string.Strings;
/**
* The media streaming resource reference is used to provided streamed data based on bytes requested
@@ -38,9 +37,8 @@ import org.apache.wicket.request.resource.ResourceReference;
*
* @author Tobias Soloschenko
*/
-public class MediaStreamingResourceReference extends ResourceReference
+public class MediaStreamingResourceReference extends PackageResourceReference
{
-
private static final long serialVersionUID = 1L;
public MediaStreamingResourceReference(Class<?> scope, String name, Locale locale,
@@ -51,7 +49,7 @@ public class MediaStreamingResourceReference extends ResourceReference
public MediaStreamingResourceReference(Class<?> scope, String name)
{
- super(scope, name, RequestCycle.get().getRequest().getLocale(), null, null);
+ this(scope, name, null, null, null);
}
public MediaStreamingResourceReference(Key key)
@@ -65,16 +63,16 @@ public class MediaStreamingResourceReference extends ResourceReference
}
@Override
- public IResource getResource()
+ public PackageResource getResource()
{
- AbstractResource mediaStreamingResource = new AbstractResource()
+ return new PackageResource(getScope(), getName(), getLocale(), getStyle(), getVariation())
{
private static final long serialVersionUID = 1L;
@Override
protected ResourceResponse newResourceResponse(Attributes attributes)
{
- PackageResourceStream packageResourceStream = null;
+ IResourceStream packageResourceStream = getResourceStream();
Long startbyte = null;
Long endbyte = null;
try
@@ -85,20 +83,12 @@ public class MediaStreamingResourceReference extends ResourceReference
if (!(request instanceof WebRequest) || !(response instanceof WebResponse))
{
throw new IllegalStateException(
- "Either the request is no web request or the response is no web response");
+ "Web request/response are required! Request: " + request + ", response: " + response);
}
WebRequest webRequest = (WebRequest)request;
WebResponse webResponse = (WebResponse)response;
- packageResourceStream = new PackageResourceStream(
- MediaStreamingResourceReference.this.getScope(),
- MediaStreamingResourceReference.this.getName(),
- MediaStreamingResourceReference.this.getLocale(),
- MediaStreamingResourceReference.this.getStyle(),
- MediaStreamingResourceReference.this.getVariation());
-
-
long length = packageResourceStream.length().bytes();
ResourceResponse resourceResponse = new ResourceResponse();
@@ -107,13 +97,13 @@ public class MediaStreamingResourceReference extends ResourceReference
resourceResponse.setContentDisposition(ContentDisposition.ATTACHMENT);
resourceResponse.setLastModified(packageResourceStream.lastModifiedTime());
- // We accept ranges, so that the player can
+ // accept ranges, so that the player can
// load and play content from a specific byte position
webResponse.setHeader("Accept-Range", "bytes");
// Calculating the response code and the byte range to be played
String rangeHeader = webRequest.getHeader("range");
- if (rangeHeader == null || "".equals(rangeHeader))
+ if (Strings.isEmpty(rangeHeader))
{
resourceResponse.setStatusCode(200);
resourceResponse.setContentLength(length);
@@ -121,7 +111,6 @@ public class MediaStreamingResourceReference extends ResourceReference
else
{
rangeHeader = rangeHeader.replaceAll(" ", "");
- // If the range header is filled 206 for
// partial content has to be returned
resourceResponse.setStatusCode(206);
@@ -131,11 +120,11 @@ public class MediaStreamingResourceReference extends ResourceReference
// http://stackoverflow.com/questions/8293687/sample-http-range-request-session
String range = rangeHeader.substring(rangeHeader.indexOf('=') + 1,
rangeHeader.length());
- String[] rangeParts = range.split("-");
- if (rangeParts[0].equals("0"))
+ String[] rangeParts = Strings.split(range, '-');
+ if ("0".equals(rangeParts[0]))
{
- webResponse.setHeader("Content-Range", "bytes 0-" + (length - 1) + "/" +
- length);
+ webResponse.setHeader("Content-Range",
+ "bytes 0-" + (length - 1) + "/" + length);
resourceResponse.setContentLength(length);
}
else
@@ -149,8 +138,8 @@ public class MediaStreamingResourceReference extends ResourceReference
{
endbyte = length - 1;
}
- webResponse.setHeader("Content-Range", "bytes " + startbyte + "-" +
- endbyte + "/" + length);
+ webResponse.setHeader("Content-Range",
+ "bytes " + startbyte + '-' + endbyte + '/' + length);
resourceResponse.setContentLength((endbyte - startbyte) + 1);
}
}
@@ -183,14 +172,13 @@ public class MediaStreamingResourceReference extends ResourceReference
}
}
};
- return mediaStreamingResource;
}
/**
- * Gets the type of the media this resource reference belongs to
+ * Returns the mime type of the media this resource reference belongs to
*
- * @return the type of this media
+ * @return the mime type of this media
*/
public String getType()
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java
deleted file mode 100755
index d06a704..0000000
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/MediaUtils.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.markup.html.media;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.markup.html.IPackageResourceGuard;
-import org.apache.wicket.markup.html.SecurePackageResourceGuard;
-
-/**
- * Helper method to provide access to basic media files like subtitles
- *
- * @author Tobias Soloschenko
- *
- */
-public class MediaUtils
-{
-
- /**
- * Method that has to be called within the init method of the web application to make
- * translation files accessible
- */
- public static void init()
- {
- IPackageResourceGuard packageResourceGuard = Application.get()
- .getResourceSettings()
- .getPackageResourceGuard();
- if (packageResourceGuard instanceof SecurePackageResourceGuard)
- {
- SecurePackageResourceGuard securePackageResourceGuard = (SecurePackageResourceGuard)packageResourceGuard;
- securePackageResourceGuard.addPattern("+*.vtt");
- securePackageResourceGuard.addPattern("+*.srt");
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
index 694544d..b5467ff 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/PartWriterCallback.java
@@ -21,10 +21,10 @@ import java.io.InputStream;
import java.io.OutputStream;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.core.util.resource.PackageResourceStream;
import org.apache.wicket.protocol.http.servlet.ResponseIOException;
import org.apache.wicket.request.resource.AbstractResource.WriteCallback;
import org.apache.wicket.request.resource.IResource.Attributes;
+import org.apache.wicket.util.resource.IResourceStream;
/**
* Used to read a part of the package resource stream and write it to the output stream of the
@@ -35,24 +35,24 @@ import org.apache.wicket.request.resource.IResource.Attributes;
*/
public class PartWriterCallback extends WriteCallback
{
- private PackageResourceStream packageResourceStream;
+ private final IResourceStream resourceStream;
- private Long startbyte;
+ private final Long startbyte;
private Long endbyte;
- private Integer buffer;
+ private int bufferSize;
/**
* Creates a part writer callback.<br>
* <br>
- * Reads a part of the given package resource stream. If the startbyte parameter is not null the
+ * Reads a part of the given resource stream. If the startbyte parameter is not null the
* number of bytes are skipped till the stream is read. If the endbyte is not null the stream is
* read till endbyte, else to the end of the whole stream. If startbyte and endbyte is null the
* whole stream is read.
*
- * @param packageResourceStream
- * the package resource stream to be read
+ * @param resourceStream
+ * the resource stream to read
* @param startbyte
* the start position to read from (if not null the number of bytes are skipped till
* the stream is read)
@@ -60,10 +60,10 @@ public class PartWriterCallback extends WriteCallback
* the end position to read to (if not null the stream is going to be read till
* endbyte, else to the end of the whole stream)
*/
- public PartWriterCallback(PackageResourceStream packageResourceStream, Long startbyte,
+ public PartWriterCallback(IResourceStream resourceStream, Long startbyte,
Long endbyte)
{
- this.packageResourceStream = packageResourceStream;
+ this.resourceStream = resourceStream;
this.startbyte = startbyte;
this.endbyte = endbyte;
}
@@ -71,7 +71,7 @@ public class PartWriterCallback extends WriteCallback
/**
* Writes the data
*
- * @param Attributes
+ * @param attributes
* the attributes to get the output stream of the response
*/
@Override
@@ -79,9 +79,9 @@ public class PartWriterCallback extends WriteCallback
{
try
{
- InputStream inputStream = packageResourceStream.getInputStream();
+ InputStream inputStream = resourceStream.getInputStream();
OutputStream outputStream = attributes.getResponse().getOutputStream();
- byte[] buffer = new byte[getBuffer()];
+ byte[] buffer = new byte[getBufferSize()];
if (startbyte != null || endbyte != null)
{
@@ -95,11 +95,11 @@ public class PartWriterCallback extends WriteCallback
// If there are no end bytes given read the whole stream till the end
if (endbyte == null)
{
- endbyte = packageResourceStream.length().bytes();
+ endbyte = resourceStream.length().bytes();
}
long totalBytes = 0;
- int actualReadBytes = 0;
+ int actualReadBytes;
while ((actualReadBytes = inputStream.read(buffer)) != -1)
{
@@ -107,7 +107,7 @@ public class PartWriterCallback extends WriteCallback
long lowerBuffer = endbyte - totalBytes;
if (lowerBuffer <= 0)
{
- buffer = (byte[])resizeArray(buffer, actualReadBytes);
+ buffer = resizeArray(buffer, actualReadBytes);
outputStream.write(buffer);
break;
}
@@ -151,15 +151,14 @@ public class PartWriterCallback extends WriteCallback
* @return A new array with the same contents.
*/
@SuppressWarnings("rawtypes")
- private static Object resizeArray(Object oldArray, int newSize)
+ private static byte[] resizeArray(byte[] oldArray, int newSize)
{
- int oldSize = java.lang.reflect.Array.getLength(oldArray);
- Class elementType = oldArray.getClass().getComponentType();
- Object newArray = java.lang.reflect.Array.newInstance(elementType, newSize);
- int preserveLength = Math.min(oldSize, newSize);
- if (preserveLength > 0)
+ int oldSize = oldArray.length;
+ byte[] newArray = new byte[newSize];
+ int minLength = Math.min(oldSize, newSize);
+ if (minLength > 0)
{
- System.arraycopy(oldArray, 0, newArray, 0, preserveLength);
+ System.arraycopy(oldArray, 0, newArray, 0, minLength);
}
return newArray;
}
@@ -167,22 +166,22 @@ public class PartWriterCallback extends WriteCallback
/**
* Sets the buffer size used to send the data to the client
*
- * @return the buffer size used to send the data to the client (default is 4048)
+ * @return the buffer size used to send the data to the client (default is 4096)
*/
- public Integer getBuffer()
+ public int getBufferSize()
{
- return buffer != null ? buffer : 4048;
+ return bufferSize > 0 ? bufferSize : 4096;
}
/**
* Sets the buffer size used to send the data to the client
*
- * @param buffer
+ * @param bufferSize
* the buffer size used to send the data to the client
*/
- public void setBuffer(Integer buffer)
+ public void setBufferSize(int bufferSize)
{
- this.buffer = buffer;
+ this.bufferSize = bufferSize;
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
index 8926609..c3fc50f 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Source.java
@@ -27,89 +27,74 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
*
* @author Tobias Soloschenko
* @author Andrew Lombardi
- *
*/
public class Source extends WebMarkupContainer
{
-
private static final long serialVersionUID = 1L;
- private Boolean displayType;
+ private boolean displayType;
private String type;
private String media;
- private MediaStreamingResourceReference mediaStreamingResourceReference;
+ private final MediaStreamingResourceReference mediaStreamingResourceReference;
- private PageParameters pageParameters;
+ private final PageParameters pageParameters;
- private String url;
+ private final String url;
public Source(String id)
{
- super(id);
+ this(id, null, null, null, null);
}
public Source(String id, IModel<?> model)
{
- super(id, model);
+ this(id, model, null, null, null);
}
public Source(String id, MediaStreamingResourceReference mediaStreamingResourceReference)
{
- this(id);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
+ this(id, null, null, null, mediaStreamingResourceReference);
}
public Source(String id, IModel<?> model,
MediaStreamingResourceReference mediaStreamingResourceReference)
{
- this(id, model);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
+ this(id, model, null, null, mediaStreamingResourceReference);
}
public Source(String id, MediaStreamingResourceReference mediaStreamingResourceReference,
PageParameters pageParameters)
{
- this(id);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
- this.pageParameters = pageParameters;
+ this(id, null, null, pageParameters, mediaStreamingResourceReference);
}
public Source(String id, IModel<?> model,
MediaStreamingResourceReference mediaStreamingResourceReference,
PageParameters pageParameters)
{
- this(id, model);
- this.mediaStreamingResourceReference = mediaStreamingResourceReference;
- this.pageParameters = pageParameters;
+ this(id, model, null, pageParameters, mediaStreamingResourceReference);
}
public Source(String id, String url)
{
- this(id);
- this.url = url;
+ this(id, null, url, null, null);
}
public Source(String id, IModel<?> model, String url)
{
- this(id, model);
- this.url = url;
+ this(id, model, url, null, null);
}
- public Source(String id, String url, PageParameters pageParameters)
+ private Source(String id, IModel<?> model, String url, PageParameters pageParameters,
+ MediaStreamingResourceReference mediaStreamingResourceReference)
{
- this(id);
- this.url = url;
- this.pageParameters = pageParameters;
- }
-
- public Source(String id, IModel<?> model, String url, PageParameters pageParameters)
- {
- this(id, model);
+ super(id, model);
this.url = url;
this.pageParameters = pageParameters;
+ this.mediaStreamingResourceReference = mediaStreamingResourceReference;
}
@Override
@@ -120,11 +105,9 @@ public class Source extends WebMarkupContainer
if (mediaStreamingResourceReference != null)
{
- tag.put("src",
- RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters));
- }
-
- if (url != null)
+ CharSequence url = RequestCycle.get().urlFor(mediaStreamingResourceReference, pageParameters);
+ tag.put("src", url);
+ } else if (url != null)
{
tag.put("src", url);
}
@@ -141,9 +124,10 @@ public class Source extends WebMarkupContainer
}
}
- if (media != null)
+ String _media = getMedia();
+ if (_media != null)
{
- tag.put("media", media);
+ tag.put("media", _media);
}
}
@@ -153,9 +137,9 @@ public class Source extends WebMarkupContainer
*
* @return If the type is going to be displayed
*/
- public Boolean getDisplayType()
+ public boolean getDisplayType()
{
- return displayType != null ? displayType : false;
+ return displayType;
}
/**
@@ -164,7 +148,7 @@ public class Source extends WebMarkupContainer
* @param displayType
* if the type is going to be displayed
*/
- public void setDisplayType(Boolean displayType)
+ public void setDisplayType(boolean displayType)
{
this.displayType = displayType;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
index 8871b23..1dc5b52 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/Track.java
@@ -30,88 +30,72 @@ import org.apache.wicket.request.resource.ResourceReference;
* media component
*
* @author Tobias Soloschenko
- *
*/
public class Track extends WebMarkupContainer
{
-
private static final long serialVersionUID = 1L;
private Kind kind;
private String label;
- private Boolean defaultTrack;
+ private boolean defaultTrack;
private Locale srclang;
- private ResourceReference resourceReference;
+ private final ResourceReference resourceReference;
- private String url;
+ private final String url;
- private PageParameters pageParameters;
+ private final PageParameters pageParameters;
public Track(String id)
{
- super(id);
+ this(id, null, null, null, null);
}
public Track(String id, IModel<?> model)
{
- super(id, model);
+ this(id, model, null, null, null);
}
public Track(String id, ResourceReference resourceReference)
{
- this(id);
- this.resourceReference = resourceReference;
+ this(id, null, null, null, resourceReference);
}
public Track(String id, IModel<?> model, ResourceReference resourceReference)
{
- this(id, model);
- this.resourceReference = resourceReference;
+ this(id, model, null, null, resourceReference);
}
public Track(String id, ResourceReference resourceReference, PageParameters pageParameters)
{
- this(id);
- this.resourceReference = resourceReference;
- this.pageParameters = pageParameters;
+ this(id, null, null, pageParameters, resourceReference);
}
public Track(String id, IModel<?> model, ResourceReference resourceReference,
PageParameters pageParameters)
{
- this(id, model);
- this.resourceReference = resourceReference;
- this.pageParameters = pageParameters;
+ this(id, model, null, pageParameters, resourceReference);
}
public Track(String id, String url)
{
- this(id);
- this.url = url;
+ this(id, null, url, null, null);
}
public Track(String id, IModel<?> model, String url)
{
- this(id, model);
- this.url = url;
+ this(id, model, url, null, null);
}
- public Track(String id, String url, PageParameters pageParameters)
+ private Track(String id, IModel<?> model, String url, PageParameters pageParameters, ResourceReference resourceReference)
{
- this(id);
- this.url = url;
- this.pageParameters = pageParameters;
- }
-
- public Track(String id, IModel<?> model, String url, PageParameters pageParameters)
- {
- this(id, model);
+ super(id, model);
this.url = url;
this.pageParameters = pageParameters;
+ this.resourceReference = resourceReference;
}
@Override
@@ -124,23 +108,24 @@ public class Track extends WebMarkupContainer
{
tag.put("src", RequestCycle.get().urlFor(resourceReference, pageParameters));
}
-
- if (url != null)
+ else if (url != null)
{
tag.put("src", url);
}
- if (kind != null)
+ Kind _kind = getKind();
+ if (_kind != null)
{
- tag.put("kind", kind.name());
+ tag.put("kind", _kind.name());
}
- if (label != null)
+ String _label = getLabel();
+ if (_label != null)
{
- tag.put("label", label);
+ tag.put("label", _label);
}
- if (defaultTrack != null && defaultTrack)
+ if (defaultTrack)
{
tag.put("default", "default");
}
@@ -148,9 +133,10 @@ public class Track extends WebMarkupContainer
// if the srclang field is set use this, else if the
// resource reference provides a locale use the language
// of the resource reference
- if (srclang != null)
+ Locale _srclang = getSrclang();
+ if (_srclang != null)
{
- tag.put("srclang", srclang.getLanguage());
+ tag.put("srclang", _srclang.getLanguage());
}
else if (resourceReference != null && resourceReference.getLocale() != null)
{
@@ -193,8 +179,8 @@ public class Track extends WebMarkupContainer
* <b>metadata</b>: Tracks intended for use from script. Not displayed by the user agent.<br>
* <br>
*
- * @param the
- * kind
+ * @param kind
+ * the kind
*/
public void setKind(Kind kind)
{
@@ -227,9 +213,9 @@ public class Track extends WebMarkupContainer
*
* @return if the track is the default track
*/
- public Boolean getDefaultTrack()
+ public boolean isDefaultTrack()
{
- return defaultTrack != null ? defaultTrack : false;
+ return defaultTrack;
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
index 0bcef1c..3ab9615 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/audio/Audio.java
@@ -27,11 +27,9 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
*
* @author Tobias Soloschenko
* @author Andrew Lombardi
- *
*/
public class Audio extends MediaComponent
{
-
private static final long serialVersionUID = 1L;
public Audio(String id)
@@ -78,16 +76,6 @@ public class Audio extends MediaComponent
super(id, model, url);
}
- public Audio(String id, String url, PageParameters pageParameters)
- {
- super(id, url, pageParameters);
- }
-
- public Audio(String id, IModel<?> model, String url, PageParameters pageParameters)
- {
- super(id, model, url, pageParameters);
- }
-
@Override
protected void onComponentTag(ComponentTag tag)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
index 79a8d7e..5a8b167 100755
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/media/video/Video.java
@@ -32,7 +32,6 @@ import org.apache.wicket.request.resource.ResourceReference;
*/
public class Video extends MediaComponent
{
-
private static final long serialVersionUID = 1L;
private Integer width;
@@ -87,35 +86,28 @@ public class Video extends MediaComponent
super(id, model, url);
}
- public Video(String id, String url, PageParameters pageParameters)
- {
- super(id, url, pageParameters);
- }
-
- public Video(String id, IModel<?> model, String url, PageParameters pageParameters)
- {
- super(id, model, url, pageParameters);
- }
-
@Override
protected void onComponentTag(ComponentTag tag)
{
checkComponentTag(tag, "video");
super.onComponentTag(tag);
- if (width != null)
+ Integer _width = getWidth();
+ if (_width != null)
{
- tag.put("width", width);
+ tag.put("width", _width);
}
- if (height != null)
+ Integer _height = getHeight();
+ if (_height != null)
{
- tag.put("height", height);
+ tag.put("height", _height);
}
- if (poster != null)
+ ResourceReference _poster = getPoster();
+ if (_poster != null)
{
- tag.put("poster", RequestCycle.get().urlFor(poster, posterPageParameters));
+ tag.put("poster", RequestCycle.get().urlFor(_poster, getPosterPageParameters()));
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
deleted file mode 100755
index 7a15513..0000000
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/Application.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.wicket.markup.html.media;
-
-import org.apache.wicket.Page;
-import org.apache.wicket.protocol.http.WebApplication;
-
-public class Application extends WebApplication
-{
-
- @Override
- public Class<? extends Page> getHomePage()
- {
- return MediaTagsTestPage.class;
- }
-
- @Override
- protected void init()
- {
- super.init();
- MediaUtils.init();
- }
-}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
index 3f17ad7..b21b4bb 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsExtendedTestPage.java
@@ -25,12 +25,10 @@ import org.apache.wicket.request.resource.PackageResourceReference;
public class MediaTagsExtendedTestPage extends WebPage
{
-
private static final long serialVersionUID = 1L;
public MediaTagsExtendedTestPage()
{
-
Video video = new Video("video", new MediaStreamingResourceReference(
MediaTagsTestPage.class, "dummyVideo.m4a"));
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
index 0863365..7c50031 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTest.java
@@ -16,80 +16,77 @@
*/
package org.apache.wicket.markup.html.media;
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.util.tester.TagTester;
-import org.apache.wicket.util.tester.WicketTester;
-import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
-public class MediaTagsTest
+public class MediaTagsTest extends WicketTestCase
{
- private WicketTester wicketTester;
-
- @Before
- public void setup()
+ @Override
+ protected WebApplication newApplication()
{
- wicketTester = new WicketTester(new Application());
+ return new MediaComponentsApplication();
}
@Test
- public void testAudioTagIsRenderedRight()
+ public void audioTagIsRenderedRight()
{
- wicketTester.startPage(MediaTagsTestPage.class);
- String lastResponseAsString = wicketTester.getLastResponse().getDocument();
+ tester.startPage(MediaTagsTestPage.class);
+ String lastResponseAsString = tester.getLastResponse().getDocument();
TagTester createTagByAttribute = TagTester.createTagByAttribute(lastResponseAsString,
"audio");
- Assert.assertTrue(createTagByAttribute.hasAttribute("autoplay"));
- Assert.assertTrue(createTagByAttribute.hasAttribute("controls"));
- Assert.assertTrue(createTagByAttribute.hasAttribute("loop"));
- Assert.assertTrue(createTagByAttribute.hasAttribute("muted"));
- Assert.assertEquals("user-credentials", createTagByAttribute.getAttribute("crossorigin"));
+ assertTrue(createTagByAttribute.hasAttribute("autoplay"));
+ assertTrue(createTagByAttribute.hasAttribute("controls"));
+ assertTrue(createTagByAttribute.hasAttribute("loop"));
+ assertTrue(createTagByAttribute.hasAttribute("muted"));
+ assertEquals("user-credentials", createTagByAttribute.getAttribute("crossorigin"));
String attribute = createTagByAttribute.getAttribute("src");
- Assert.assertTrue("The time period is set right in the src attribute",
+ assertTrue("The time period is set right in the src attribute",
attribute.contains("#t=5,10"));
- Assert.assertTrue("page parameter is in the url of the src attribute",
+ assertTrue("page parameter is in the url of the src attribute",
attribute.contains("test=test"));
}
@Test
- public void testVideoTagIsRenderedRight()
+ public void videoTagIsRenderedRight()
{
- wicketTester.startPage(MediaTagsTestPage.class);
- String lastResponseAsString = wicketTester.getLastResponse().getDocument();
+ tester.startPage(MediaTagsTestPage.class);
+ String lastResponseAsString = tester.getLastResponse().getDocument();
TagTester createTagByAttribute = TagTester.createTagByAttribute(lastResponseAsString,
"video");
String attribute = createTagByAttribute.getAttribute("poster");
- Assert.assertTrue("page parameter is in the url of the poster",
+ assertTrue("page parameter is in the url of the poster",
attribute.contains("test2=test2"));
String attributesrc = createTagByAttribute.getAttribute("src");
- Assert.assertTrue("video url is in the src attribute",
+ assertTrue("video url is in the src attribute",
attributesrc.contains("dummyVideo.m4a"));
- Assert.assertEquals("500", createTagByAttribute.getAttribute("width"));
- Assert.assertEquals("400", createTagByAttribute.getAttribute("height"));
+ assertEquals("500", createTagByAttribute.getAttribute("width"));
+ assertEquals("400", createTagByAttribute.getAttribute("height"));
}
@Test
- public void testextendedVideoTagIsRenderedRight()
+ public void extendedVideoTagIsRenderedRight()
{
- wicketTester.startPage(MediaTagsExtendedTestPage.class);
- String lastResponseAsString = wicketTester.getLastResponse().getDocument();
+ tester.startPage(MediaTagsExtendedTestPage.class);
+ String lastResponseAsString = tester.getLastResponse().getDocument();
TagTester createTagByAttribute = TagTester.createTagByAttribute(lastResponseAsString,
"video");
- Assert.assertTrue(createTagByAttribute.hasChildTag("source"));
- Assert.assertTrue(createTagByAttribute.hasChildTag("track"));
+ assertTrue(createTagByAttribute.hasChildTag("source"));
+ assertTrue(createTagByAttribute.hasChildTag("track"));
TagTester sourceTag = TagTester.createTagByAttribute(lastResponseAsString, "source");
- Assert.assertEquals("video/mp4", sourceTag.getAttribute("type"));
- Assert.assertEquals("screen and (device-width:500px)", sourceTag.getAttribute("media"));
- Assert.assertEquals("http://www.mytestpage.xc/video.m4a", sourceTag.getAttribute("src"));
+ assertEquals("video/mp4", sourceTag.getAttribute("type"));
+ assertEquals("screen and (device-width:500px)", sourceTag.getAttribute("media"));
+ assertEquals("http://www.mytestpage.xc/video.m4a", sourceTag.getAttribute("src"));
TagTester trackTag = TagTester.createTagByAttribute(lastResponseAsString, "track");
- Assert.assertTrue(trackTag.getAttribute("src").contains("dummySubtitles"));
- Assert.assertEquals("subtitles", trackTag.getAttribute("kind"));
- Assert.assertEquals("Subtitles of video", trackTag.getAttribute("label"));
- Assert.assertEquals("default", trackTag.getAttribute("default"));
- Assert.assertEquals("de", trackTag.getAttribute("srclang"));
+ assertTrue(trackTag.getAttribute("src").contains("dummySubtitles"));
+ assertEquals("subtitles", trackTag.getAttribute("kind"));
+ assertEquals("Subtitles of video", trackTag.getAttribute("label"));
+ assertEquals("default", trackTag.getAttribute("default"));
+ assertEquals("de", trackTag.getAttribute("srclang"));
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ac7cf808/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
index 6bb6619..e8dbdd8 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/media/MediaTagsTestPage.java
@@ -25,7 +25,6 @@ import org.apache.wicket.request.resource.PackageResourceReference;
public class MediaTagsTestPage extends WebPage
{
-
private static final long serialVersionUID = 1L;
public MediaTagsTestPage()
@@ -37,7 +36,7 @@ public class MediaTagsTestPage extends WebPage
audio.setAutoplay(true);
audio.setControls(true);
audio.setCrossOrigin(Cors.USER_CREDENTIALS);
- audio.setLoop(true);
+ audio.setLooping(true);
audio.setMuted(true);
audio.setStartTime("5");
audio.setEndTime("10");