VLC (Video Lan Client) API nutzen



  • Hallo,

    ich weiß net so recht ob der post hier richtig ist wenn nicht ggf. verschieben! thx

    Also mein problem ist folgendes: Ich würde gerne meinen VLC-Player mittels einer API "fernsteuern" (nur play & pause), doch leider weiß ich net ob der VLC eine API bereitstellt noch wie ich sie nutzen soll! 😕

    Ich habe folgendes gefunden, kann aber net so recht was damit anfangen wie ich das in mein project einbinden soll:

    VLC_PUBLIC_API void mediacontrol_start (mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception)
    Play the movie at a given position.

    VLC_PUBLIC_API void mediacontrol_pause (mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception)
    Pause the movie at a given position.

    VLC_PUBLIC_API void mediacontrol_resume (mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception)
    Resume the movie at a given position.

    VLC_PUBLIC_API void mediacontrol_stop (mediacontrol_Instance *self, const mediacontrol_Position *a_position, mediacontrol_Exception *exception)
    Stop the movie at a given position.

    Danke



  • Das ist wohl das was du suchst!

    vielleicht hilft dir diese Seite:
    http://wiki.videolan.org/ExternalAPI



  • So, jetzt hab ich nun:

    #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[])
    {
        char *vlc_args = {"-I", "dummy", "--module-path=/set/your/path/to/libvlc/module"};
        libvlc_exception_t excp;
        libvlc_instance_t * inst;
        libvlc_media_instance_t *mi;
        libvlc_media_descriptor_t *md;
    
        libvlc_exception_init( &excp );
        /* init vlc modules, should be done only once */
        inst = libvlc_new( args, 3, &excp );
        quit_on_exception( &excp );
    
        /* Create a new item */
        md = libvlc_media_descriptor_new( int, "http://mycool.movie.com/test.mov", &excp );
        quit_on_exception( &excp );
    
        /* XXX: demo art and meta information fetching */
    
        /* Create a media instance playing environement */
        mi = libvlc_media_instance_new_from_media_descriptor( int, md, &excp );
        quit_on_exception( &excp );
    
        /* No need to keep the media descriptor now */
        libvlc_media_descriptor_release( md );
    
    #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_instance_set_drawable( mi, drawable, &excp );
         quit_on_exception( &excp );
    #endif
    
        /* play the media_instance */
        libvlc_media_instance_play( mi, &excp );
        quit_on_exception( &excp );
    
        sleep(10); /* Let it play a bit */
    
        /* Stop playing */
        libvlc_media_instance_stop( mi, &excp );
    
        /* Free the media_instance */
        libvlc_media_instance_release( mi, &excp );
    
        libvlc_instance_destroy( inst );
    
        return 0;
    }
    

    doch woher bekomme ich die libvlc.h???
    Oder soll ichs etwa über die libvlc.dll machen???

    Das ist alles etwas merkwürdig für mich, da ich ja auf jeden system die dateien suchen muß gibts da net direkte API funktionen die man callen kann und wenn ja wie??? 1 bsp für z.b. "pause" würde mir reichen und ich könnte mir den rest dann herleiten! 😡



  • Hast du mal den Sourcecode des VLC geladen?
    http://www.videolan.org/vlc/download-sources.html
    Evtl. ist da die fehlende Headerdatei dabei.



  • Also das funktioniert in soweit (mit delphi erstmal) das wenn das man die vlc dll einbindet... doch das finde ich nicht so toll, da ich da jedes mal wenn ich kontrollo über mein vlc player haben möchte, ich diesen von meinen programm aus starten muß!

    das ist doof und muß doch irgendwie über die api funktionieren (wenn der vlc schon läuft)!???

    http://www.videolan.org/developers/vlc/doc/doxygen/html/group__mediacontrol.html

    die funktionen heisen net umsonst "VLC_PUBLIC_API" da muß man das laufende Programm doch irgendwie erreichen können???



  • Das sind Grundsatzfragen, die eigentlich in ein VLC-spezifisches Forum o.ä. gehören.


Anmelden zum Antworten