Difference between revisions of "LibVLC Tutorial 0.9"
Jump to navigation
Jump to search
Line 9: | Line 9: | ||
cc example.c -lvlc -o example | cc example.c -lvlc -o example | ||
− | === Sample LibVLC Code === | + | === Sample LibVLC Code === |
− | #include | + | #include <stdio.h> |
− | #include | + | #include <stdlib.h> |
− | #include | + | #include <vlc/vlc.h> |
− | #include | + | #include <unistd.h> |
− | |||
static void raise(libvlc_exception_t * ex) | static void raise(libvlc_exception_t * ex) | ||
{ | { | ||
if (libvlc_exception_raised (ex)) | if (libvlc_exception_raised (ex)) | ||
{ | { | ||
− | fprintf (stderr, "error: %s\n", libvlc_exception_get_message(ex)); | + | fprintf (stderr, "error: %s\n", libvlc_exception_get_message(ex)); |
exit (-1); | exit (-1); | ||
} | } | ||
Line 36: | Line 35: | ||
libvlc_media_t *m; | libvlc_media_t *m; | ||
− | libvlc_exception_init (&ex); | + | libvlc_exception_init (&ex); |
/* init vlc modules, should be done only once */ | /* init vlc modules, should be done only once */ | ||
− | inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args, &ex); | + | inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args, &ex); |
− | raise (&ex); | + | raise (&ex); |
/* Create a new item */ | /* Create a new item */ | ||
− | m = libvlc_media_new (inst, "http://mycool.movie.com/test.mov", &ex); | + | m = libvlc_media_new (inst, "http://mycool.movie.com/test.mov", &ex); |
− | raise (&ex); | + | raise (&ex); |
/* XXX: demo art and meta information fetching */ | /* XXX: demo art and meta information fetching */ | ||
/* Create a media player playing environement */ | /* Create a media player playing environement */ | ||
− | mp = libvlc_media_player_new_from_media (m, &ex); | + | mp = libvlc_media_player_new_from_media (m, &ex); |
− | raise (&ex); | + | raise (&ex); |
/* No need to keep the media now */ | /* No need to keep the media now */ | ||
Line 61: | Line 60: | ||
libvlc_drawable_t drawable = hwnd; | libvlc_drawable_t drawable = hwnd; | ||
− | libvlc_media_player_set_drawable (mp, drawable, &ex); | + | libvlc_media_player_set_drawable (mp, drawable, &ex); |
− | raise (&ex); | + | raise (&ex); |
#endif | #endif | ||
/* play the media_player */ | /* play the media_player */ | ||
− | libvlc_media_player_play (mp, &ex); | + | libvlc_media_player_play (mp, &ex); |
− | raise (&ex); | + | raise (&ex); |
sleep (10); /* Let it play a bit */ | sleep (10); /* Let it play a bit */ | ||
Line 73: | Line 72: | ||
/* Stop playing */ | /* Stop playing */ | ||
#warning There is known deadlock bug here. Please update to LibVLC 1.1! | #warning There is known deadlock bug here. Please update to LibVLC 1.1! | ||
− | libvlc_media_player_stop (mp, &ex); | + | libvlc_media_player_stop (mp, &ex); |
/* Free the media_player */ | /* Free the media_player */ | ||
Line 79: | Line 78: | ||
libvlc_release (inst); | libvlc_release (inst); | ||
− | raise (&ex); | + | raise (&ex); |
return 0; | return 0; | ||
} | } |
Revision as of 08:57, 16 June 2010
LibVLC Tutorial
This may work with 0.9 and 1.0 version, you just need to remove exception to get it to work on 1.1
Of course, windows binary builds don't come with vlc.h, so you'll need a copy of the source to get them. See LibVLC_Tutorial_086c for some instructions on getting the build working.
Linking against LibVLC
cc example.c -lvlc -o example
Sample LibVLC Code
#include <stdio.h> #include <stdlib.h> #include <vlc/vlc.h> #include <unistd.h>
static void raise(libvlc_exception_t * ex) { if (libvlc_exception_raised (ex)) { fprintf (stderr, "error: %s\n", libvlc_exception_get_message(ex)); exit (-1); } } int main(int argc, char* argv[]) { const char * const vlc_args[] = { "-I", "dummy", /* Don't use any interface */ "--ignore-config", /* Don't use VLC's config */ "--plugin-path=/set/your/path/to/libvlc/module/if/you/are/on/windows/or/macosx" }; libvlc_exception_t ex; libvlc_instance_t * inst; libvlc_media_player_t *mp; libvlc_media_t *m; libvlc_exception_init (&ex); /* init vlc modules, should be done only once */ inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args, &ex); raise (&ex); /* Create a new item */ m = libvlc_media_new (inst, "http://mycool.movie.com/test.mov", &ex); raise (&ex); /* XXX: demo art and meta information fetching */ /* Create a media player playing environement */ mp = libvlc_media_player_new_from_media (m, &ex); raise (&ex); /* No need to keep the media now */ libvlc_media_release (m); #if 0 /* This is a non working code that show how to hooks into a window, * if we have a window around */ libvlc_drawable_t drawable = xdrawable; /* or on windows */ libvlc_drawable_t drawable = hwnd; libvlc_media_player_set_drawable (mp, drawable, &ex); raise (&ex); #endif /* play the media_player */ libvlc_media_player_play (mp, &ex); raise (&ex); sleep (10); /* Let it play a bit */ /* Stop playing */ #warning There is known deadlock bug here. Please update to LibVLC 1.1! libvlc_media_player_stop (mp, &ex); /* Free the media_player */ libvlc_media_player_release (mp); libvlc_release (inst); raise (&ex); return 0; }