Example usage for com.google.gwt.media.client Video play

List of usage examples for com.google.gwt.media.client Video play

Introduction

In this page you can find the example usage for com.google.gwt.media.client Video play.

Prototype

public void play() 

Source Link

Document

Causes playback of the resource to be started or resumed.

Usage

From source file:nl.mpi.tg.eg.experiment.client.view.TimedStimulusView.java

License:Open Source License

public Element addTimedVideo(final TimedEventMonitor timedEventMonitor, final SafeUri oggPath,
        final SafeUri ogvPath, final SafeUri mp4Path, int percentOfPage, int maxHeight, int maxWidth,
        final String styleName, final boolean autoPlay, final boolean loop, final boolean showControls,
        final CancelableStimulusListener loadedStimulusListener,
        final CancelableStimulusListener failedStimulusListener,
        final CancelableStimulusListener playbackStartedStimulusListener,
        final CancelableStimulusListener playedStimulusListener, final String mediaId) {
    cancelableListnerList.add(loadedStimulusListener);
    cancelableListnerList.add(failedStimulusListener);
    cancelableListnerList.add(playbackStartedStimulusListener);
    cancelableListnerList.add(playedStimulusListener);
    final Element videoElement;
    if (timedEventMonitor != null) {
        timedEventMonitor.registerEvent("addTimedVideo");
    }/*from ww w  . j a v  a2s .  c om*/
    final Video video = Video.createIfSupported();
    if (video == null) {
        failedStimulusListener.postLoadTimerFired();
        videoElement = null;
    } else {
        video.setAutoplay(autoPlay);
        videoList.put(mediaId, video);
        //            video.setPoster(poster);
        video.setControls(showControls);
        video.setPreload(MediaElement.PRELOAD_AUTO);
        if (styleName != null && !styleName.isEmpty()) {
            video.addStyleName(styleName);
        } else {
            addSizeAttributes(video.getElement(), percentOfPage, maxHeight, maxWidth);
        }
        getActivePanel().add(video);
        video.addCanPlayThroughHandler(new CanPlayThroughHandler() {
            boolean hasTriggeredOnLoaded = false;

            @Override
            public void onCanPlayThrough(CanPlayThroughEvent event) {
                if (!hasTriggeredOnLoaded) {
                    if (timedEventMonitor != null) {
                        timedEventMonitor.registerEvent("videoCanPlayThrough");
                    }
                    hasTriggeredOnLoaded = true;
                    loadedStimulusListener.postLoadTimerFired();
                    if (autoPlay) {
                        video.play();
                    }
                    if (video.getError() != null) {
                        // todo: check that this method is functioning correctly and if not then use the method in audioPlayer.@nl.mpi.tg.eg.experiment.client.service.AudioPlayer::onAudioFailed()();
                        failedStimulusListener.postLoadTimerFired();
                    }
                }
            }
        });
        new VideoPlayer().addNativeCallbacks(timedEventMonitor, video.getVideoElement(),
                playbackStartedStimulusListener);
        //            todo: move the video handling code from here into the VideoPlayer class, in such a way is it can be used like the AudioPlayer class of the same package
        video.addEndedHandler(new EndedHandler() {
            private boolean triggered = false;

            @Override
            public void onEnded(EndedEvent event) {
                if (timedEventMonitor != null) {
                    timedEventMonitor.registerEvent("videoEnded");
                    timedEventMonitor.registerMediaLength(mediaId, (long) (video.getCurrentTime() * 1000));
                }
                // prevent multiple triggering
                if (!triggered) {
                    triggered = true;
                    //                        Timer timer = new Timer() {
                    //                            public void run() {
                    playedStimulusListener.postLoadTimerFired();
                    //                            }
                    //                        };
                    //                        timerList.add(timer);
                    //                        timer.schedule(postLoadMs);
                }
            }
        });
        if (oggPath != null) {
            video.addSource(oggPath.asString(), "video/ogg");
        }
        if (ogvPath != null) {
            video.addSource(ogvPath.asString(), "video/ogg");
        }
        if (mp4Path != null) {
            video.addSource(mp4Path.asString(), "video/mp4");
        }

        if (!autoPlay) {
            video.pause();
            video.setCurrentTime(0);
        }
        video.setLoop(loop);
        video.load();
        if (video.getError() != null) {
            // todo: check that this method is functioning correctly and if not then use the method in audioPlayer.@nl.mpi.tg.eg.experiment.client.service.AudioPlayer::onAudioFailed()();
            failedStimulusListener.postLoadTimerFired();
        }
        videoElement = video.getElement();
    }
    return videoElement;
}

From source file:nl.mpi.tg.eg.experiment.client.view.TimedStimulusView.java

License:Open Source License

public void startMedia(final String mediaId) {
    for (String key : videoList.keySet()) {
        if (key.matches(mediaId)) {
            Video video = videoList.get(key);
            if (video != null) {
                video.play();
            }//from w ww  .ja v a 2  s .c  om
        }
    }
    for (String key : audioList.keySet()) {
        if (key.matches(mediaId)) {
            AudioPlayer audioPlayer = audioList.get(key);
            if (audioPlayer != null) {
                audioPlayer.play();
            }
        }
    }
}