Skip to content

Callbacks (Surfmeter Selenium for Java)

We offer different callbacks that can be used to react concurrently to certain events:

class MyTest {

    // ...
    public test() {
        // ...

        SurfmeterMonitoredVideo monitoredVideo = surfmeter.getMonitoredVideo(video);
        monitoredVideo.onVideoPlaybackStateChanged((event) -> {
            // fires with every play back state change
            // playback states can be:
            //  UNSTARTED - when the video has never played yet
            //  PLAYING - when the video plays
            //  PAUSED - when the playback pauses, because e.g. the user clicke the pause button
            //  STALLING - when the playback suddenly breaks due to an buffer-underrun
            //  SEEKING - when the user seeks e.g. a specific position in the video
            //  ENDED - when the playback completed

            // videoPlaybackState: event.getVideoPlaybackState();
            // clientTime: event.getClientTime();
            // mediaTime: event.getMediaTime();
        })
        .onMediaTimeUpdated((event) -> {
           // fires with every time update of the video

           // clientTime: event.getClientTime();
           // mediaTime: event.getMediaTime();
        })
        .onNewStatisticsAvailable((event) -> {
           // fires approx. every five seconds, when new statistics are computed

           // statistics: event.getStatistics();
           // clientTime: event.getClientTime();
           // mediaTime: event.getMediaTime();
        })
        .onVideoResolutionChanged((event) -> {

           // resolutionHeight: event.getResolutionHeight(); // e.g. 720
           // resolutionWidth: event.getResolutionWidth(); // e.g. 1080
           // resolutionString: event.getResolutionString(); // e.g. "1080x720"
           // clientTime: event.getClientTime();
           // mediaTime: event.getMediaTime();
        });

        // ...
    }

    // ...
}

Further callbacks can be integrated. We welcome your feedback here!