Difference between revisions of "LibVLC Tutorial"

From VideoLAN Wiki
Jump to navigation Jump to search
(Useless settings)
Line 36: Line 36:
 
  int main(int argc, char* argv[])
 
  int main(int argc, char* argv[])
 
  {
 
  {
    const char * const vlc_args[] = {
 
              "--plugin-path=/set/your/path/to/libvlc/module/if/you/are/on/windows/or/macosx" };
 
 
     libvlc_instance_t * inst;
 
     libvlc_instance_t * inst;
 
     libvlc_media_player_t *mp;
 
     libvlc_media_player_t *mp;
 
     libvlc_media_t *m;
 
     libvlc_media_t *m;
 
      
 
      
     /* init vlc modules, should be done only once */
+
     /* Load the VLC engine */
     inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);
+
     inst = libvlc_new (0, NULL);
 
    
 
    
 
     /* Create a new item */
 
     /* Create a new item */

Revision as of 16:18, 9 July 2010

LibVLC Tutorial

Installing the SDK

This code is written for LibVLC version 1.1.0 or later. It cannot be compiled with older versions.

Windows

VLC binary installers for Windows do not include the LibVLC SDK. It would be a waste of bandwidth and space for most users.

You can find the SDK files, i.e. development headers and import libraries, from the plain ZIP packages in the sdk directory. Alternatively, you can build VLC from source.

See LibVLC_Tutorial_086c for some more instructions on getting the build working.

Linux

You should find the necessary files (libvlc.so, libvlc.pc, header files...) in a binary package called libvlc-dev (Debian, Ubuntu...), libvlc-devel (RPM distros) or similar. Make sure that the version is recent enough before going forward.

Linking against LibVLC

cc example.c -lvlc -o example

On Linux/BSD, you may prefer to use pkg-config:

pkg-config --print-errors 'libvlc >= 1.1.0'
cc -c example.c -o example.c $(pkg-config --cflags libvlc)
cc example.o -o example $(pkg-config --libs libvlc)

Sample LibVLC Code

 #include <stdio.h>
 #include <stdlib.h>
 #include <vlc/vlc.h>
 
 int main(int argc, char* argv[])
 {
     libvlc_instance_t * inst;
     libvlc_media_player_t *mp;
     libvlc_media_t *m;
     
     /* Load the VLC engine */
     inst = libvlc_new (0, NULL);
  
     /* Create a new item */
     m = libvlc_media_new_path (inst, "http://mycool.movie.com/test.mov");
        
     /* Create a media player playing environement */
     mp = libvlc_media_player_new_from_media (m);
     
     /* 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_media_player_set_xdrawable (mp, xdrawable);
     /* or on windows */
      libvlc_media_player_set_hwnd (mp, hwnd);
     /* or on mac os */
      libvlc_media_player_set_nsobject (mp, view);
  #endif
 
     /* play the media_player */
     libvlc_media_player_play (mp);
    
     sleep (10); /* Let it play a bit */
    
     /* Stop playing */
     libvlc_media_player_stop (mp);
 
     /* Free the media_player */
     libvlc_media_player_release (mp);
 
     libvlc_release (inst);
 
     return 0;
 }