Example usage for com.google.gwt.dom.client MediaElement CAN_PLAY_MAYBE

List of usage examples for com.google.gwt.dom.client MediaElement CAN_PLAY_MAYBE

Introduction

In this page you can find the example usage for com.google.gwt.dom.client MediaElement CAN_PLAY_MAYBE.

Prototype

String CAN_PLAY_MAYBE

To view the source code for com.google.gwt.dom.client MediaElement CAN_PLAY_MAYBE.

Click Source Link

Document

Constant returned from #canPlayType(String) .

Usage

From source file:annis.gui.widgets.gwt.client.ui.VMediaPlayerBase.java

License:Apache License

@Override
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
    if (client.updateComponent(this, uidl, true)) {
        return;/*w  w w  . j  a va2s . c  o m*/
    }

    // Save reference to server connection object to be able to send
    // user interaction later
    this.gClient = client;

    // Save the client side identifier (paintable id) for the widget
    paintableId = uidl.getId();

    if (media == null) {
        VConsole.error("media not set!!!");
        return;
    }

    if (uidl.hasAttribute(SOURCE_URL)) {
        registerMetadataLoadedEvent(media);

        if (uidl.hasAttribute(MIME_TYPE)) {
            String mimeType = uidl.getStringAttribute(MIME_TYPE);
            VConsole.log(
                    "canPlayType for \"" + mimeType + "\"value is \"" + media.canPlayType(mimeType) + "\"");
            // check for correct mime type
            if (media.canPlayType(uidl.getStringAttribute(MIME_TYPE)).equals(MediaElement.CANNOT_PLAY)) {
                VConsole.log("CANNOT PLAY!!!");

                gClient.updateVariable(paintableId, CANNOT_PLAY, true, true);
            } else if (media.canPlayType(uidl.getStringAttribute(MIME_TYPE))
                    .equals(MediaElement.CAN_PLAY_MAYBE)) {
                gClient.updateVariable(paintableId, MIGHT_NOT_PLAY, true, true);
            }
        }
        media.setSrc(uidl.getStringAttribute(SOURCE_URL));
    }

    if (uidl.hasAttribute(PLAY)) {
        String[] time = uidl.getStringArrayAttribute(PLAY);
        if (time != null && time.length > 0) {
            if (time.length == 1) {
                try {
                    media.setCurrentTime(Double.parseDouble(time[0]));
                } catch (NumberFormatException ex) {
                    VConsole.error(ex);
                }
            } else if (time.length == 2) {
                try {
                    media.setCurrentTime(Double.parseDouble(time[0]));
                    setEndTimeOnce(media, Double.parseDouble(time[1]));
                } catch (NumberFormatException ex) {
                    VConsole.error(ex);
                }
            }
            media.play();
        }
    } else if (uidl.hasAttribute(PAUSE)) {
        media.pause();
    } else if (uidl.hasAttribute(STOP)) {
        media.pause();
        media.setSrc("");
    }
}

From source file:es.deusto.weblab.client.ui.audio.AudioManager.java

License:Open Source License

/**
 * Helper method which will play a sound if certain conditions are met:
 * Sound is enabled./*from  w w w  .jav  a 2s  .c  o  m*/
 * Sound is supported.
 * If they are not, calling this method will have no effect.
 * 
 * The file type is inferred by the web browser. If it supports OGG, it will use the ".ogg" extension. If it doesn't, but it
 * supports MP3, it will use ".mp3". It will also try WAV, and otherwise it will not work. Therefore, the audio files must be 
 * duplicated in these three formats to work. 
 * 
 * @param file File to play. The path should be relative to the module base URL. E.g. "/audio/foo" will select foo.ogg, foo.mp3 or foo.wav
 * 
 * @return AudioElement being played, or null. May be used to modify the default behaviour, such
 * as enabling loop mode.
 */
public AudioElement playBest(String file) {
    if (this.getSoundEnabled()) {
        final Audio audio = Audio.createIfSupported();
        if (audio != null) {
            final AudioElement elem = audio.getAudioElement();

            // First try probably
            if (elem.canPlayType(OGG_TYPE).equals(MediaElement.CAN_PLAY_PROBABLY))
                elem.setSrc(GWT.getModuleBaseURL() + file + ".ogg");
            else if (elem.canPlayType(MP3_TYPE).equals(MediaElement.CAN_PLAY_PROBABLY))
                elem.setSrc(GWT.getModuleBaseURL() + file + ".mp3");
            else if (elem.canPlayType(WAV_TYPE).equals(MediaElement.CAN_PLAY_PROBABLY))
                elem.setSrc(GWT.getModuleBaseURL() + file + ".wav");
            // Then maybe
            else if (elem.canPlayType(OGG_TYPE).equals(MediaElement.CAN_PLAY_MAYBE))
                elem.setSrc(GWT.getModuleBaseURL() + file + ".ogg");
            else if (elem.canPlayType(MP3_TYPE).equals(MediaElement.CAN_PLAY_MAYBE))
                elem.setSrc(GWT.getModuleBaseURL() + file + ".mp3");
            else if (elem.canPlayType(WAV_TYPE).equals(MediaElement.CAN_PLAY_MAYBE))
                elem.setSrc(GWT.getModuleBaseURL() + file + ".wav");
            // Then fail
            else
                return null;

            elem.play();
            return elem;
        }
    }
    return null;
}

From source file:net.cbtltd.client.field.MediaControl.java

/**
 * Sets the ID of an audio object./*from ww  w.j a  v  a2 s.  co m*/
 *
 * @param value the new ID of the audio object.
 */
public void setAudioValue(String value) {
    Log.debug("setAudioValue " + value);
    try {
        this.value = value;
        if (media == null || value == null || value.isEmpty()) {
            return;
        }

        else if (MediaElement.CAN_PLAY_PROBABLY.equals(media.canPlayType(AudioElement.TYPE_WAV))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + Text.AUDIO_WAV);
        } else if (MediaElement.CAN_PLAY_PROBABLY.equals(media.canPlayType(AudioElement.TYPE_MP3))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + Text.AUDIO_MP3);
        } else if (MediaElement.CAN_PLAY_PROBABLY.equals(media.canPlayType(AudioElement.TYPE_OGG))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + Text.AUDIO_OGG);
        }

        else if (MediaElement.CAN_PLAY_MAYBE.equals(media.canPlayType(AudioElement.TYPE_WAV))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + Text.AUDIO_WAV);
        } else if (MediaElement.CAN_PLAY_MAYBE.equals(media.canPlayType(AudioElement.TYPE_MP3))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + Text.AUDIO_MP3);
        } else if (MediaElement.CAN_PLAY_MAYBE.equals(media.canPlayType(AudioElement.TYPE_OGG))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + Text.AUDIO_OGG);
        } else {
            return;
        }

        media.load();
        //media.setPreload(MediaElement.PRELOAD_AUTO);
        Log.debug("loaded " + value);
    } catch (Exception x) {
        Log.error(
                "setAudioValue " + HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value + "\n" + media.getError());
    }
}

From source file:net.cbtltd.client.field.MediaControl.java

/**
 * Sets the ID of a video object.//from  w  w  w  .ja va2s  .c  o  m
 *
 * @param value the new ID of the video object.
 */
public void setVideoValue(String value) {
    Log.debug("setVideoValue " + value);
    try {
        this.value = value;
        if (media == null || value == null || value.isEmpty()) {
            return;
        }

        else if (MediaElement.CAN_PLAY_PROBABLY.equals(media.canPlayType(VideoElement.TYPE_MP4))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.VIDEO_DIRECTORY + value + Text.VIDEO_MP4);
        } else if (MediaElement.CAN_PLAY_PROBABLY.equals(media.canPlayType(VideoElement.TYPE_OGG))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.VIDEO_DIRECTORY + value + Text.VIDEO_OGG);
        } else if (MediaElement.CAN_PLAY_PROBABLY.equals(media.canPlayType(VideoElement.TYPE_WEBM))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.VIDEO_DIRECTORY + value + Text.VIDEO_WEBM);
        }

        else if (MediaElement.CAN_PLAY_MAYBE.equals(media.canPlayType(VideoElement.TYPE_MP4))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.VIDEO_DIRECTORY + value + Text.VIDEO_MP4);
        } else if (MediaElement.CAN_PLAY_MAYBE.equals(media.canPlayType(VideoElement.TYPE_OGG))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.VIDEO_DIRECTORY + value + Text.VIDEO_OGG);
        } else if (MediaElement.CAN_PLAY_MAYBE.equals(media.canPlayType(VideoElement.TYPE_WEBM))) {
            media.setSrc(HOSTS.rootUrl() + HasUrls.VIDEO_DIRECTORY + value + Text.VIDEO_WEBM);
        } else {
            return;
        }
        media.load();
        //media.setPreload(MediaElement.PRELOAD_AUTO);
        Log.debug("loaded " + value);
    } catch (Exception x) {
        Log.error("setVideoValue " + HOSTS.rootUrl() + HasUrls.AUDIO_DIRECTORY + value);
    }
}