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