!7 lib 1400522 // vlcj player import static uk.co.caprica.vlcjplayer.Application.application; import uk.co.caprica.vlcj.player.embedded.*; import uk.co.caprica.vlcjplayer.event.*; import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent; 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; import uk.co.caprica.vlcjplayer.view.debug.DebugFrame; import uk.co.caprica.vlcjplayer.view.effects.EffectsFrame; import uk.co.caprica.vlcjplayer.view.main.MainFrame; import uk.co.caprica.vlcjplayer.view.messages.NativeLogFrame; static NativeStreams nativeStreams; static JFrame mainFrame, messagesFrame, effectsFrame, debugFrame; static NativeLog nativeLog; p/*-subst*/ { // fullscreen still has a frame with Substance pnl(addMegaLibrary(myClassLoader(), #1400524); fixContextClassLoader(); // This will locate LibVLC for the vast majority of cases new NativeDiscovery().discover(); startPlayer(); if (nempty(args)) { S fileToPlay = first(args); if (fileExists(fileToPlay)) { application().addRecentMedia(fileToPlay); application().mediaPlayerComponent().getMediaPlayer().playMedia(fileToPlay); } } hideConsole(); } svoid startPlayer { swing { final EmbeddedMediaPlayerComponent mediaPlayerComponent = application().mediaPlayerComponent(); mainFrame = new MainFrame(); onWindowClosingDoOnly(mainFrame, r { mediaPlayerComponent.getMediaPlayer().stop(); mediaPlayerComponent.release(); if (nativeStreams != null) nativeStreams.release(); application().post(ShutdownEvent.INSTANCE); cleanKillInNewThread(); }); EmbeddedMediaPlayer embeddedMediaPlayer = mediaPlayerComponent.getMediaPlayer(); embeddedMediaPlayer.setFullScreenStrategy(new VlcjPlayerFullScreenStrategy(mainFrame)); nativeLog = mediaPlayerComponent.getMediaPlayerFactory().newLog(); messagesFrame = new NativeLogFrame(nativeLog); effectsFrame = new EffectsFrame(); debugFrame = new DebugFrame(); mainFrame.setVisible(true); } } sclass VlcjPlayerFullScreenStrategy extends DefaultAdaptiveRuntimeFullScreenStrategy { *(Window window) { super(window); } @Override protected void beforeEnterFullScreen() { application().post(BeforeEnterFullScreenEvent.INSTANCE); } @Override protected void afterExitFullScreen() { application().post(AfterExitFullScreenEvent.INSTANCE); } }