import junit.framework.Assert;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
-import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor;
+import org.videolan.jvlc.internal.LibVlc.LibVlcMediaInstance;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaList;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaListPlayer;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
-public class MediaListPlayerTest
+public class MediaListPlayerTest extends AbstractVLCInternalTest
{
-
- private LibVlc libvlc = LibVlc.SYNC_INSTANCE;
-
- private LibVlcInstance libvlcInstance;
-
- private String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-
-
- @Before
- public void testSetup()
- {
- libvlc_exception_t exception = new libvlc_exception_t();
- libvlcInstance = libvlc.libvlc_new(0, new String[]{}, exception);
- }
-
- @After
- public void tearDown()
- {
- libvlc.libvlc_release(libvlcInstance);
- }
@Test
public void mediaListPlayerNewTest()
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
Assert.assertNotNull(mediaListPlayer);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
@Test
public void mediaListPlayerSetMediaListTest()
{
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
@Test
public void mediaListPlayerSetMediaListTest2()
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
- LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_descriptor_new(libvlcInstance, mrl, exception);
- libvlc.libvlc_media_list_add_media_descriptor(mediaList, mediaDescriptor, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
@Test
- public void mediaListPlayerIsPlayingTest()
+ public void mediaListPlayerIsNotPlayingTest()
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
int result = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
Assert.assertEquals(0, result);
Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
@Test
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
libvlc.libvlc_media_list_player_play(mediaListPlayer, exception);
Assert.assertEquals(1, exception.raised);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
/**
- * this fails: see https://trac.videolan.org/vlc/attachment/ticket/1527
+ * this fails: see https://trac.videolan.org/vlc/ticket/1527
*/
@Test
public void mediaListPlayerPlay()
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
- LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_descriptor_new(libvlcInstance, mrl, exception);
- libvlc.libvlc_media_list_add_media_descriptor(mediaList, mediaDescriptor, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
libvlc.libvlc_media_list_player_play(mediaListPlayer, exception);
Assert.assertEquals("Exception message: " + exception.message + ".\n", 0, exception.raised);
+ libvlc.libvlc_media_release(mediaDescriptor);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
@Test
- public void mediaListPlayerPlayItemAtIndex()
+ public void mediaListPlayerPlayItemAtIndex() throws Exception
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
- LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_descriptor_new(libvlcInstance, mrl, exception);
- libvlc.libvlc_media_list_add_media_descriptor(mediaList, mediaDescriptor, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0, exception);
+ while (true)
+ {
+ int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
+ if (exception.raised == 1)
+ {
+ throw new RuntimeException("Native exception thrown");
+ }
+ if (playing == 1)
+ {
+ break;
+ }
+ Thread.sleep(150);
+ }
+ libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+ libvlc.libvlc_media_release(mediaDescriptor);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
@Test
public void mediaListPlayerPlayItem() throws Exception
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
- LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_descriptor_new(libvlcInstance, mrl, exception);
- libvlc.libvlc_media_list_add_media_descriptor(mediaList, mediaDescriptor, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception);
- Thread.sleep(6000);
+ Assert.assertEquals(0, exception.raised);
+ while (true)
+ {
+ int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
+ if (exception.raised == 1)
+ {
+ throw new RuntimeException("Native exception thrown");
+ }
+ if (playing == 1)
+ {
+ break;
+ }
+ Thread.sleep(150);
+ }
+ Thread.sleep(400);
+ libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
}
-
+
+ @Test
+ public void mediaListPlayerGetStateEnded()
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
+ Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), state);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
+ }
+
@Test
- public void mediaListPlayerGetStateStopped()
+ public void mediaLtistPlayerPause() throws Exception
{
libvlc_exception_t exception = new libvlc_exception_t();
LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
+ libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
+ libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception);
+ while (true)
+ {
+ int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
+ if (exception.raised == 1)
+ {
+ throw new RuntimeException("Native exception thrown");
+ }
+ if (playing == 1)
+ {
+ break;
+ }
+ Thread.sleep(150);
+ }
+ libvlc.libvlc_media_list_player_pause(mediaListPlayer, exception);
+
int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
- Assert.assertEquals(LibVlcState.libvlc_Stopped.ordinal(), state);
+ Assert.assertEquals(exception.message, 0, exception.raised);
+ Assert.assertEquals(
+ "Expected state: " + LibVlcState.libvlc_Paused + ".\n",
+ LibVlcState.libvlc_Paused.ordinal(),
+ state);
+ libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+ libvlc.libvlc_media_list_release(mediaList);
+ libvlc.libvlc_media_list_player_release(mediaListPlayer);
+ }
+
+ @Test
+ public void mediaListPlayerSetMediaInstance()
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ LibVlcMediaDescriptor md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ LibVlcMediaInstance mi = libvlc.libvlc_media_player_new_from_media(md, exception);
+ libvlc.libvlc_media_list_player_set_media_player(mediaListPlayer, mi, exception);
+ Assert.assertEquals(0, exception.raised);
+ }
+
+ @Test
+ public void mediaListPlayerNextNoItems()
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ libvlc.libvlc_media_list_player_next(mediaListPlayer, exception);
+ Assert.assertEquals(1, exception.raised);
+ }
+
+ /**
+ * fails, see https://trac.videolan.org/vlc/ticket/1535
+ */
+ // @Test
+ public void mediaListPlayerNext() throws Exception
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
+ libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
+ libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0, exception);
+ Thread.sleep(150);
+ libvlc.libvlc_media_list_player_next(mediaListPlayer, exception);
+ Assert.assertEquals(0, exception.raised);
+ libvlc.libvlc_media_list_release(mediaList);
+ }
+
+ @Test
+ public void mediaListPlayerIsPlaying() throws Exception
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+ LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+ LibVlcMediaDescriptor mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+ libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
+ libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
+ libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception);
+
+ while (true)
+ {
+ int playing = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
+ Assert.assertEquals(0, exception.raised);
+ if (playing == LibVlcState.libvlc_Playing.ordinal())
+ {
+ break;
+ }
+ Thread.sleep(150);
+ }
+
+ libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+ while (true)
+ {
+ int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
+ Assert.assertEquals(0, exception.raised);
+ if (playing == 0)
+ {
+ break;
+ }
+ Thread.sleep(150);
+ }
+ Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), libvlc.libvlc_media_list_player_get_state(
+ mediaListPlayer,
+ exception));
+ libvlc.libvlc_media_list_release(mediaList);
}
}