Ich baue also eine einfache Wecker-Anwendung und verwende FFPlay, um den Weckton abzuspielen. Ich möchte den Ton „still“ abspielen (keine Konsolenausgabe oder Windows-Popups), aber wenn ich das tue, kann ich FFPlay nicht stoppen, ohne den Prozess zu beenden.
Befehl:
ffplay -i "C:\Users\GJBalaich\Google Drive\Audition\Run Alarm\Exports\Run Alarm.mp3" -loop 0 -showmode 0 -loglevel -8 -exitonkeydown
Es wird also nur eine Audiodatei in einer Schleife abgespielt, und ich habe -showmode
0 eingestellt, was Video ist, sodass kein Popup-Fenster angezeigt wird (da kein Videostream vorhanden ist). Ich habe jedoch festgestellt, dass dies -exitonkeydown
nicht wirklich funktioniert, es sei denn, Sie konzentrieren sich auf das FFPlay-Popup-Fenster, das ich deaktiviert habe.
Gibt es eine Möglichkeit, FFPlay ordnungsgemäß zu stoppen, ohne sich auf das Popup-Fenster zu konzentrieren?
Antwort1
Die Tastendruckereignisse werden von SDL abgefangen, das das Anzeigefenster zeichnet. Kein Fenster bedeutet also keine Tastenereignisse.
Um ffplay unter Windows remote zu beenden, führen Sie aus
taskkill /f /im ffplay.exe
vorausgesetzt, Sie haben nur ein ffplay laufen. Wenn nicht, holen Sie sich die PID für das entsprechende ffplay über
tasklist | findstr ffplay
und dann
taskkill /f /pid XYZ
Antwort2
ffplay
verfügt über eine Option zum „automatischen Beenden“, wenn die Wiedergabe der Audio- oder Videodatei abgeschlossen ist:
ffplay --autoexit /your/media/file.ogg