private final JVLC jvlc;
+ private volatile boolean released;
+
public MediaListPlayer(JVLC jvlc)
{
libvlc_exception_t exception = new libvlc_exception_t();
return jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 1;
}
+
+ /**
+ *
+ */
public void play()
{
libvlc_exception_t exception = new libvlc_exception_t();
jvlc.getLibvlc().libvlc_media_list_player_play(instance, exception);
+ try
+ {
+ while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 0)
+ {
+ Thread.sleep(25);
+ }
+ }
+ catch(InterruptedException e)
+ {
+ //
+ }
}
public void stop()
libvlc_exception_t exception = new libvlc_exception_t();
jvlc.getLibvlc().libvlc_media_list_player_pause(instance, exception);
}
-
+ public void next()
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ jvlc.getLibvlc().libvlc_media_list_player_next(instance, exception);
+ }
+
+ /**
+ * Plays the given descriptor and returns only when the player has started to play.
+ * @param descriptor The media descriptor to play
+ */
public void playItem(MediaDescriptor descriptor)
+ {
+ playItem(descriptor, true);
+ }
+
+ /**
+ * @param descriptor The media descriptor to play
+ * @param synchronous If true it does not return until the player is not playing.
+ */
+ public void playItem(MediaDescriptor descriptor, boolean synchronous)
{
libvlc_exception_t exception = new libvlc_exception_t();
jvlc.getLibvlc().libvlc_media_list_player_play_item(instance, descriptor.getInstance(), exception);
+ if (!synchronous)
+ {
+ return;
+ }
+
+ try
+ {
+ while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 0)
+ {
+ Thread.sleep(25);
+ }
+ }
+ catch(InterruptedException e)
+ {
+ //
+ }
+
}
+ /**
+ * Plays the item at the given index and returns only when the player has started to play.
+ * @param index The item index to play.
+ */
public void playItem(int index)
+ {
+ playItem(index, true);
+ }
+
+ /**
+ * @param index The item index to play.
+ * @param synchronous If true it does not return until the player is not playing.
+ */
+ public void playItem(int index, boolean synchronous)
{
libvlc_exception_t exception = new libvlc_exception_t();
jvlc.getLibvlc().libvlc_media_list_player_play_item_at_index(instance, index, exception);
+ try
+ {
+ while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 0)
+ {
+ Thread.sleep(25);
+ }
+ }
+ catch(InterruptedException e)
+ {
+ //
+ }
}
- public void setMediaInstance(MediaInstance mediaInstance)
+ public void setMediaInstance(MediaPlayer mediaInstance)
{
libvlc_exception_t exception = new libvlc_exception_t();
- jvlc.getLibvlc().libvlc_media_list_player_set_media_instance(instance, mediaInstance.getInstance(), exception);
+ jvlc.getLibvlc().libvlc_media_list_player_set_media_player(instance, mediaInstance.getInstance(), exception);
}
/**
@Override
protected void finalize() throws Throwable
{
- jvlc.getLibvlc().libvlc_media_list_player_release(instance);
+ release();
super.finalize();
}
+ /**
+ *
+ */
+ public void release()
+ {
+ if (released)
+ {
+ return;
+ }
+ released = true;
+ jvlc.getLibvlc().libvlc_media_list_player_release(instance);
+
+ }
+
}