Difference between revisions of "LibVLC Tutorial 0.9"

From VideoLAN Wiki
Jump to navigation Jump to search
(→‎Sample LibVLC Code: Set --module-path.)
(→‎LibVLC Tutorial: convert to media and media_player)
Line 25: Line 25:
 
     libvlc_exception_t excp;
 
     libvlc_exception_t excp;
 
     libvlc_instance_t * inst;
 
     libvlc_instance_t * inst;
     libvlc_media_instance_t *mi;
+
     libvlc_media_player_t *mp;
     libvlc_media_descriptor_t *md;
+
     libvlc_media_t *m;
 
      
 
      
 
     libvlc_exception_init( &excp );
 
     libvlc_exception_init( &excp );
Line 34: Line 34:
 
    
 
    
 
     /* Create a new item */
 
     /* Create a new item */
     md = libvlc_media_descriptor_new( inst, "http://mycool.movie.com/test.mov", &excp );
+
     m = libvlc_media_new( inst, "http://mycool.movie.com/test.mov", &excp );
 
     quit_on_exception( &excp );
 
     quit_on_exception( &excp );
 
      
 
      
 
     /* XXX: demo art and meta information fetching */
 
     /* XXX: demo art and meta information fetching */
 
      
 
      
     /* Create a media instance playing environement */
+
     /* Create a media player playing environement */
     mi = libvlc_media_instance_new_from_media_descriptor( md, &excp );
+
     mp = libvlc_media_player_new_from_media_descriptor( m, &excp );
 
     quit_on_exception( &excp );
 
     quit_on_exception( &excp );
 
      
 
      
     /* No need to keep the media descriptor now */
+
     /* No need to keep the media now */
     libvlc_media_descriptor_release( md );
+
     libvlc_media_release( m );
 
   
 
   
 
  #if 0
 
  #if 0
Line 53: Line 53:
 
       libvlc_drawable_t drawable = hwnd;
 
       libvlc_drawable_t drawable = hwnd;
 
   
 
   
       libvlc_media_instance_set_drawable( mi, drawable, &excp );
+
       libvlc_media_player_set_drawable( mp, drawable, &excp );
 
       quit_on_exception( &excp );
 
       quit_on_exception( &excp );
 
  #endif
 
  #endif
 
   
 
   
     /* play the media_instance */
+
     /* play the media_player */
     libvlc_media_instance_play( mi, &excp );
+
     libvlc_media_player_play( mp, &excp );
 
     quit_on_exception( &excp );
 
     quit_on_exception( &excp );
 
      
 
      
Line 64: Line 64:
 
      
 
      
 
     /* Stop playing */
 
     /* Stop playing */
     libvlc_media_instance_stop( mi, &excp );
+
     libvlc_media_player_stop( mp, &excp );
 
   
 
   
     /* Free the media_instance */
+
     /* Free the media_player */
     libvlc_media_instance_release( mi, &excp );
+
     libvlc_media_player_release( mp, &excp );
 
   
 
   
 
     libvlc_release( inst, &excp );
 
     libvlc_release( inst, &excp );

Revision as of 01:14, 30 March 2008

LibVLC Tutorial

This may work with trunk version, does not work with 0.8.6c

Linking against LibVLC

cc example.c -lvlc-control -o example

Sample LibVLC Code

#include <stdio.h>
#include <vlc/libvlc.h>

static void quit_on_exception( libvlc_exception_t * excp )
{
    if( libvlc_exception_raised( &excp );
    {
         fprintf(stderr, "error: %s\n", libvlc_exception_get_message(excp) );
         exit(-1);
    }
}
int main(int argc, char* argv[])
{
    const char * const vlc_args[] = {"-I", "dummy", "--module-path=/set/your/path/to/libvlc/module/if/you/are/on/windows/or/macosx" };
    libvlc_exception_t excp;
    libvlc_instance_t * inst;
    libvlc_media_player_t *mp;
    libvlc_media_t *m;
    
    libvlc_exception_init( &excp );
    /* init vlc modules, should be done only once */
    inst = libvlc_new( sizeof(args) / sizeof(args[0]), arg, &excp );
    quit_on_exception( &excp );
 
    /* Create a new item */
    m = libvlc_media_new( inst, "http://mycool.movie.com/test.mov", &excp );
    quit_on_exception( &excp );
   
    /* XXX: demo art and meta information fetching */
   
    /* Create a media player playing environement */
    mp = libvlc_media_player_new_from_media_descriptor( m, &excp );
    quit_on_exception( &excp );
    
    /* 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, &excp );
     quit_on_exception( &excp );
#endif

    /* play the media_player */
    libvlc_media_player_play( mp, &excp );
    quit_on_exception( &excp );
   
    sleep(10); /* Let it play a bit */
   
    /* Stop playing */
    libvlc_media_player_stop( mp, &excp );

    /* Free the media_player */
    libvlc_media_player_release( mp, &excp );

    libvlc_release( inst, &excp );
    quit_on_exception( &excp );

    return 0;
}