/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed 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 com.vaadin.ui; import com.vaadin.server.Resource; import com.vaadin.shared.ui.audio.AudioState; /** * The Audio component translates into an HTML5 <audio> element and as * such is only supported in browsers that support HTML5 media markup. Browsers * that do not support HTML5 display the text or HTML set by calling * {@link #setAltText(String)}. * * A flash-player fallback can be implemented by setting HTML content allowed ( * {@link #setHtmlContentAllowed(boolean)} and calling * {@link #setAltText(String)} with the flash player markup. An example of flash * fallback can be found at the <a href= * "https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox#Using_Flash" * >Mozilla Developer Network</a>. * * Multiple sources can be specified. Which of the sources is used is selected * by the browser depending on which file formats it supports. See * <a href="http://en.wikipedia.org/wiki/HTML5_video#Table">wikipedia</a> for a * table of formats supported by different browsers. * * @author Vaadin Ltd * @since 6.7.0 */ public class Audio extends AbstractMedia { public Audio() { this("", null); } /** * @param caption * The caption of the audio component. */ public Audio(String caption) { this(caption, null); } /** * @param caption * The caption of the audio component * @param source * The audio file to play. */ public Audio(String caption, Resource source) { setCaption(caption); setSource(source); setShowControls(true); } @Override protected AudioState getState() { return (AudioState) super.getState(); } @Override protected AudioState getState(boolean markAsDirty) { return (AudioState) super.getState(markAsDirty); } }