In VLC Player Play und Stop ansteuern

  • VB.NET

Es gibt 53 Antworten in diesem Thema. Der letzte Beitrag () ist von OneWorld.

    In VLC Player Play und Stop ansteuern

    Hi Leute,

    gibt es eine möglichkeit wie ich aus VB2010 den VLC Player (welcher einfach geöffnet ist) steuern kann?
    Ich brauch nur play und pause/stop.
    (Am besten auch die genau Zeit, aber die kommt ja, wenn ich gleichzeitig play drücke.)

    Ich muss nämlich die Zeit dann als timecode via UDP an ein anderes Programm weitergeben.

    Ich hab hier ein Programm in Delphi, welches das VLC fenster sucht und dann auch play/pause drücken kann. Nur das gibt leider nen Midi-Timecode aus, und der bringt mir nix.

    Danke
    Jojo

    P.s. Über google find ich immer nur dieses activeX Plugin von VLC, mit dem man den ganzen Player in sein Programm einbinden kann, dass will ich aber nicht. Es soll der Player und mein Programm laufen und mein Programm im Player einfach Play drücken, wie manuell mit der maus.
    Hey,

    hat mich jetzt selber interessiert. Jedoch scheint das Ganze nicht einfach zu sein. VLC verwendet QWidget, um seine Fenster zu zeichnen und daher besitzen die ChildControls keine Handles. Kannst es Dir ja mal selber durchlesen.

    qt-project.org/forums/viewthread/19753
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Du kannst Hotkeys über eine zweite, nur kurz offene und (hoffentlich) unsichtbare Instanz weiterleiten: videolan.org/doc/play-howto/en/ch04.html#id590986 (nicht getestet, nur gegoogelt).

    Edit: Bei genauerer Betrachtung könnte es sein, dass hier nur Hotkeys festgelegt, aber nicht ausgelöst werden.
    Gruß
    hal2000
    Danke für die Antworten :)

    Mir ist noch die Idee gekommen, dass der VLC ja ein Webinterface hat. Dadrüber kann man ihn bestimmt steuern. Leider bin ich aber nicht weiter gekommen wir mit meim Browster auf localhost:8080 und dann den VLC steuern.
    Und im Internet bzw. bei google hab ich auch nicht viel gefunden. Kann man den auch irgendwie so per UDP/TCP steuern, wenn man dann "play" oder so schickt.

    Danke
    Jojo
    Vielleicht hilft das weiter :

    Link:

    Ich habs jetzt nicht durchgesehen aber vielleicht ist ja was dabei ;)

    Gruß

    [EDIT]: Aktivieren kann man ihn so: Extras-> Einstellungen -> Unten dann Einstellungen zeigen Alle -> Interface -> Hauptinterfaces -> Häkchen bei Web setzen Speichern und VLC Neustarten. Dann Localhost:8080 aufrufen und fertig ;)
    Youtube Info Library 2013 jetzt im Showroom.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „OneWorld“ ()

    Danke für deine Antwort, aber wie ich das Webinterface aktivieren kann war mir schon vorher klar.
    Ich will beim VLC aus meiner Anwendung heraus Start & Stop drücken können. Wie ist mir relativ egal, es sollte nur sicher funktionieren.
    Das mit dem Webinterface war nur so ne idee.

    Grüße
    Achso ja is eigentlich einfach: Du musst das Webinterface aktiviert haben (nicht im Browser offen, denn das ist nicht erforderlich geht auch ohne :D ), dann gibst du oben in deinen Webbrowser einfach:

    localhost:8080/requests/status.xml?command=pl_pause

    ein und er sollte pausieren erneutes Eingeben zum Fortfahren.

    [EDIT]: Dann kannst du mit

    VB.NET-Quellcode

    1. Dim wc as new Webbrowser
    2. wc.Navigate("http://localhost:8080/requests/status.xml?command=pl_pause")


    den VLC über dein Programm pausieren
    Youtube Info Library 2013 jetzt im Showroom.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „OneWorld“ ()

    @nafets3646 Das ist natürlich auch eine Idee. Ich wollte es halt nur so einfach wie möglich halten, denn mit zwei Zeilen Code funktioniert das ganze ja schon ;)
    Youtube Info Library 2013 jetzt im Showroom.
    Vielen Dank!!

    @OneWorld: Gibts irgendwo ne Liste mit den ganzen Befehlen, die man so übergeben kann und kann man so vielleicht auch die Zeit abfragen? :D

    @nafets3646: Das hab ich auch schon gesehen, aber da stand niergends, dass es das für VB gibt. Ich schau mir das mal genauer an :)
    Das mit der Liste mit mehreren Befehlen bekomme ich hin. Mit der Zeit keine Ahnung müsste ich mal nachschauen, wie man das machen könnte.
    Youtube Info Library 2013 jetzt im Showroom.
    @OneWorld: Ich glaub du hast mich falsch verstanden und ich hab mich jetzt beim 2. mal lesen auch nich so ganz klar ausgedrückt :/

    Ich will keine Liste mit befehlen übergeben, sondern eine Liste mit allen Befehlen, die ich so ansteuern kann, also was alles geht.
    @LJ Jojo Sry hab ich dann wohl auch falsch geantwortet ;)

    Meinst du dann sowas hier :

    Quellcode

    1. http://localhost:8080/requests/status.xml?command=pl_play&id=1 Play -> führt zum neutarten des Liedes, etc...
    2. http://localhost:8080/requests/status.xml?command=pl_pause Pause/Play
    3. http://localhost:8080/requests/status.xml?command=pl_previous Vorheriges Abspielen
    4. http://localhost:8080/requests/status.xml?command=pl_next Nächstes Abspielen
    5. http://localhost:8080/requests/status.xml?command=pl_stop Stop
    6. http://localhost:8080/requests/status.xml?command=fullscreen Vollbild
    7. http://localhost:8080/requests/status.xml?command=volume&val=195 Setzt die Lautstärke 195 ist der Wert der Lautstärke. keine Ahnung wie die sich am Ende zusammenrechnet
    Youtube Info Library 2013 jetzt im Showroom.
    genau :)

    Aber die Zeit kann man so nicht abfragen? Und sind das schon alle Befehle?

    Könnte ja sein, dass man irgendwie aus der Webpage dann die Zeit abfragen kann, schließlich steht die allein in einem div mit der id="currentTime" und die gesamtZeit hat die id="totalTime"

    ...mein Timer, mit dem ich die Zeit in ms Zähl geht nämlich auf 10s 4s falsch, ja da gibts schon Threads zu, die werd ich auch noch durchlesen.
    @nafets3646 Genau. Ein Timer ist dafür ungeeignet

    @LJ Jojo Ich bin gerade auf eine Idee gekommen aber das braucht Zeit ;) . Ich stelle mir den VLC - Player als "Server" vor, der die ganze Zeit Befehle sendet und auch empfangen kann. Das Webinterface empfängt/sendet sie. Da das Webinterface auch die Zeit empfangen kann, müsste man auch mit dem VB - Programm die Zeit empfangen können. Rein theoretisch, praktisch muss ich das testen.

    Vielleicht stimmt das so ungefähr, wie gesagt, das kann ich erst später sagen.
    Youtube Info Library 2013 jetzt im Showroom.
    Jo habe ich auch gerade gesehen :thumbup: musst du dann nur umrechnen:

    XML-Quellcode

    1. <time>240</time>
    2. <length>304</length>
    Youtube Info Library 2013 jetzt im Showroom.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „OneWorld“ ()

    Hi, bin eben wieder zum weiter programmieren/probieren gekommen.

    Leider funktioniert das bei mir nicht:

    OneWorld schrieb:

    VB.NET-Quellcode

    1. Dim wc as new Webclient
    2. wc.Navigate("http://localhost:8080/requests/status.xml?command=pl_pause")
    Ich hab System.Net importiert, aber an der Stelle kommt immer folgende meldung:
    Eine nicht behandelte Ausnahme des Typs "System.ArgumentException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: URI-Formate werden nicht unterstützt.
    Außerdem gibt es das .Navigate nicht, deshalb hab ich .OpenRead genommen. Der Fehler kommt also beim .OpenRead

    Aber die Zeit aus der status.xml kann ich mit dem Code hier abgeändert auslesen :)

    Also das mit der Stopwatch sieht schonmal viieelll besser aus :thumbsup: Danke

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LJ Jojo“ ()