private MediaList mediaList;
+ private VLM vlm;
+
+ private volatile boolean released;
+
public JVLC()
{
- String[] args = new String[1];
- args[0] = "jvlc";
+ String[] args = new String[] {};
instance = createInstance(args);
mediaList = new MediaList(this);
}
public JVLC(String[] args)
{
- String[] myargs = new String[args.length + 1];
- myargs[0] = "jvlc";
- System.arraycopy(args, 0, myargs, 1, args.length);
- instance = createInstance(myargs);
+ instance = createInstance(args);
+ }
+
+ public JVLC(String args)
+ {
+ this(args.split(" "));
}
public MediaInstance play(String media)
return libvlc.libvlc_new(args.length, args, exception);
}
+ public Logger getLogger()
+ {
+ return new Logger(this);
+ }
+
+ public VLM getVLM()
+ {
+ if (vlm != null)
+ {
+ vlm.release();
+ }
+ this.vlm = new VLM(this);
+ return vlm;
+ }
+
+ public LoggerVerbosityLevel getLogVerbosity()
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ int level = libvlc.libvlc_get_log_verbosity(instance, exception);
+ return LoggerVerbosityLevel.getSeverity(level);
+ }
+
+ public void setLogVerbosity(LoggerVerbosityLevel level)
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ libvlc.libvlc_set_log_verbosity(instance, level.ordinal(), exception);
+ }
+
+
/**
* Returns the _instance.
* @return the _instance
{
return libvlc;
}
+
+ /**
+ * Releases this instance and the native resources.
+ */
+ public void release()
+ {
+ if (!released)
+ {
+ released = true;
+ if (vlm != null)
+ {
+ vlm.release();
+ vlm = null;
+ }
+ libvlc.libvlc_release(instance);
+ }
+ }
/*
* (non-Javadoc)
@Override
protected void finalize() throws Throwable
{
- libvlc.libvlc_release(instance);
+ if (!released)
+ {
+ released = true;
+ libvlc.libvlc_release(instance);
+ }
super.finalize();
}