Révision 2423
tmp/org.txm.backtomedia.rcp/src/org/txm/backtomedia/editors/vlcplayer/VLCPlayer.java (revision 2423) | ||
---|---|---|
18 | 18 |
import org.txm.backtomedia.preferences.BackToMediaPreferences; |
19 | 19 |
import org.txm.utils.logger.Log; |
20 | 20 |
|
21 |
import com.sun.jna.StringArray; |
|
22 |
|
|
23 |
import uk.co.caprica.vlcj.binding.LibC; |
|
24 |
import uk.co.caprica.vlcj.binding.RuntimeUtil; |
|
25 |
import uk.co.caprica.vlcj.binding.internal.libvlc_instance_t; |
|
26 |
|
|
27 |
import static uk.co.caprica.vlcj.binding.LibVlc.libvlc_new; |
|
28 |
import static uk.co.caprica.vlcj.binding.LibVlc.libvlc_release; |
|
29 |
import uk.co.caprica.vlcj.factory.discovery.NativeDiscovery; |
|
30 |
import uk.co.caprica.vlcj.factory.discovery.strategy.NativeDiscoveryStrategy; |
|
21 | 31 |
import uk.co.caprica.vlcj.factory.swt.SwtMediaPlayerFactory; |
22 | 32 |
import uk.co.caprica.vlcj.player.base.MediaPlayer; |
23 | 33 |
import uk.co.caprica.vlcj.player.base.MediaPlayerEventAdapter; |
24 | 34 |
import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent; |
25 | 35 |
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; |
26 | 36 |
import uk.co.caprica.vlcj.player.embedded.videosurface.swt.CompositeVideoSurface; |
37 |
import uk.co.caprica.vlcj.support.version.LibVlcVersion; |
|
27 | 38 |
import vlcplayerrcp.MessagesMP; |
28 | 39 |
|
29 | 40 |
public class VLCPlayer extends Composite { |
30 | 41 |
|
31 |
// static { |
|
32 |
//// System.setProperty("jna.nosys", "true"); // TODO understand why I need to do this |
|
33 |
//// NativeDiscovery nd = new NativeDiscovery(new DefaultLinuxNativeDiscoveryStrategy() { |
|
34 |
//// @Override |
|
35 |
//// protected void onGetDirectoryNames(List<String> directoryNames) { |
|
36 |
//// directoryNames.add("/usr/lib"); |
|
37 |
//// directoryNames.add("/usr/local/lib"); |
|
38 |
//// directoryNames.add("/snap/vlc/current/usr/lib"); |
|
39 |
//// } |
|
40 |
//// }, |
|
41 |
//// new DefaultWindowsNativeDiscoveryStrategy(), |
|
42 |
//// new DefaultMacNativeDiscoveryStrategy() |
|
43 |
//// ); |
|
44 |
// |
|
45 |
// if (!new NativeDiscovery().discover()) { |
|
46 |
// //System.out.println(MessagesMP.error_native_libs); |
|
47 |
// } else { |
|
48 |
// //System.out.println("VLC native libraries found !"); |
|
49 |
// } |
|
50 |
// } |
|
42 |
static { |
|
43 |
NativeDiscovery discovery = new NativeDiscovery() { |
|
44 |
|
|
45 |
@Override |
|
46 |
protected void onFound(String path, NativeDiscoveryStrategy strategy) { |
|
47 |
Log.finer("VLC NativeDiscovery: Found " + path + " " + strategy); |
|
48 |
} |
|
49 |
|
|
50 |
@Override |
|
51 |
protected void onNotFound() { |
|
52 |
Log.finer("VLC NativeDiscovery: Not found"); |
|
53 |
} |
|
54 |
}; |
|
55 |
boolean found = discovery.discover(); |
|
56 |
System.out.println("VLC NativeDiscovery: " + found); |
|
57 |
libvlc_instance_t instance = libvlc_new(0, new StringArray(new String[0])); |
|
58 |
System.out.println("VLC NativeDiscovery: instance " + instance); |
|
59 |
if (instance != null) { |
|
60 |
libvlc_release(instance); |
|
61 |
} |
|
62 |
System.out.println("VLC NativeDiscovery: " + new LibVlcVersion().getVersion()); |
|
63 |
} |
|
64 |
|
|
51 | 65 |
protected static final String NOMEDIA = ""; //$NON-NLS-1$ |
52 | 66 |
|
53 | 67 |
private EmbeddedMediaPlayer vlcPlayer; |
... | ... | |
110 | 124 |
this.setLayout(new GridLayout(11, false)); |
111 | 125 |
|
112 | 126 |
// THE PLAYER |
127 |
|
|
128 |
if (RuntimeUtil.isMac()) { |
|
129 |
try { |
|
130 |
LibC.INSTANCE.setenv("VLC_PLUGIN_PATH", "/Applications/VLC.app/Contents/MacOS/plugins", 1); |
|
131 |
} |
|
132 |
catch (Exception ex) { |
|
133 |
ex.printStackTrace(); |
|
134 |
} |
|
135 |
} |
|
113 | 136 |
videoComposite = new Composite(this, SWT.EMBEDDED | SWT.NO_BACKGROUND); |
114 | 137 |
GridData gdata = new GridData(SWT.FILL, SWT.FILL, true, true); |
115 | 138 |
gdata.horizontalSpan = 11; |
... | ... | |
518 | 541 |
// |
519 | 542 |
// @Override |
520 | 543 |
// public void run() { |
521 |
vlcPlayer.media().play(mrl); |
|
544 |
String[] options = { " :live-caching=200" }; // reduce video stream cache duration to 200ms |
|
545 |
vlcPlayer.media().play(mrl, options); |
|
522 | 546 |
vlcPlayer.controls().setTime(start); |
523 | 547 |
if (new File(mrl + ".srt").exists()) { //$NON-NLS-1$ |
524 | 548 |
vlcPlayer.subpictures().setSubTitleFile(mrl + ".srt"); //$NON-NLS-1$ |
Formats disponibles : Unified diff