!7 static LS _stickyLibs_vlcj = ll(#1400035); lib 1400035 // vlcj player import uk.co.caprica.vlcjplayer.Application; import uk.co.caprica.vlcjplayer.event.*; import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; import uk.co.caprica.vlcj.discovery.NativeDiscovery; import uk.co.caprica.vlcj.log.NativeLog; import uk.co.caprica.vlcj.runtime.RuntimeUtil; import uk.co.caprica.vlcj.runtime.streams.NativeStreams; module VLCJTest > DynSCP { transient EmbeddedMediaPlayerComponent mediaPlayerComponent; transient EmbeddedMediaPlayer mediaPlayer; transient float position; start { doEvery(1000, r { if (mediaPlayer != null) if (setField(position := mediaPlayer.getPosition())) print("Video position: " + position); }); } JComponent visualize2() { ret jcenteredbutton("Play a video...", r { selectFile("Video to play", voidfunc(final File f) { thread { playVideo(f); } }) }); } void playVideo(final File f) { temp enter(); // This will locate LibVLC for the vast majority of cases new NativeDiscovery().discover(); mediaPlayerComponent = Application.application().mediaPlayerComponent(); setComponent(centerAndSouth(mediaPlayerComponent, withMargin(centeredButtons( "Play", r { if (mediaPlayer != null) mediaPlayer.play() }, "Pause", r { if (mediaPlayer != null) mediaPlayer.pause() }, "Stop", r { if (mediaPlayer != null) mediaPlayer.stop() }, )))); mediaPlayer = mediaPlayerComponent.getMediaPlayer(); swing { mediaPlayer.playMedia(f2s(f)); mediaPlayer.play(); mediaPlayer.setVolume(100); print("Audio descriptions: " + mediaPlayer.getAudioDescriptions()); } } void cleanMeUp_vlcj { if (mediaPlayer != null) { mediaPlayer.release(); mediaPlayer = null; } } }