2012-04-20 12 views
15

Ich arbeite an einem einfachen Python-Skript, das etwas tun soll, dann eine Videodatei abspielen, und dann noch ein paar Sachen.Play video Datei mit VLC, dann beenden VLC

Ich bin gezwungen, diese auf einem Windows XP Maschine zu tun mit Python 3.2.3 und VLC meiner Videodatei abzuspielen.

ich zur Zeit diesen Code verwende ...

vlc_path = '\\path\\to\\vlc.exe' 
video_path = '\\path\\to\\video\\file' 
subprocess.call([vlc_path, video_path]) 

... VLC öffnen und das Video abspielen. Es funktioniert gut. Das Skript wartet jedoch darauf, dass VLC beendet wird, bevor es fortgesetzt wird. Was gut ist und ich möchte es so halten.

Meine Frage ist: Gibt es eine Möglichkeit, VLC direkt nach dem Abspielen der Videodatei zu beenden?

Vielen Dank für jede Hilfe!

+2

für zusätzliche Kontrolle vlc hat Python-Bindungen: http: //wiki.videolan.org/Python_bindings – bmu

+0

Danke, bmu, aber das ist mehr als ich brauche. :) – Florian

Antwort

35

Witzigerweise hat vlc eine Befehlszeilenoption für diese:

--play-and-exit, --no-play-and-exit 
          Play and exit (default disabled) 

Also, nur diese Option passieren zu vlc.

+1

Danke, das hat perfekt funktioniert. Eine Sache, die wichtig zu sein scheint, ist, dass Sie 'shell = True' setzen. Das funktionierte für mich: 'subprocess.call ([vlc_path, video_path, '- play-and-exit', '--fullscreen'], shell = True)' – Florian

+1

@Florian. Seltsam. Für mich funktionierte 'shell = False' und' True' nicht. Vielen Dank für Ihre Implementierung! – Mathias711

+0

Dies funktionierte nicht, wenn ich vlc unter Windows 10 ausführte. Das Hinzufügen des unten genannten Dummy-Elements brachte jedoch den Trick. –

0

Der beste Weg, den ich mir vorstellen kann, ist, den Prozess durch einen separaten Thread zu beenden, nachdem die Videolänge abgelaufen ist, wenn Sie die Länge des Videos in Python kennen. Ansonsten hängt es von den Befehlszeilenoptionen von VLC ab. Vielleicht kannst du ihm sagen, dass er nach dem Abspielen des Films schließen soll.

+2

Es wäre besser, hier die Befehlszeilenoption zu verwenden, anstatt den Prozess unrichtig zu beenden. – logain

0

Wenn die Option --ignore-config nach vlc zusätzlich am Anfang nichts funktioniert versuchen http://quit am Ende