Итак, я создаю простое приложение-будильник и использую FFPlay для воспроизведения звука будильника. Я хотел бы воспроизводить звук «без звука» (без вывода на консоль или всплывающих окон), но когда я это делаю, я не могу остановить FFPlay, не убив процесс.
Команда:
ffplay -i "C:\Users\GJBalaich\Google Drive\Audition\Run Alarm\Exports\Run Alarm.mp3" -loop 0 -showmode 0 -loglevel -8 -exitonkeydown
Итак, это просто зацикливание аудиофайла, и я установил -showmode
значение 0, что соответствует видео, поэтому всплывающего окна не будет (поскольку нет видеопотока). Однако я обнаружил, что это -exitonkeydown
на самом деле не работает, если вы не сосредоточены на всплывающем окне FFPlay, которое я отключил.
Есть ли способ корректно остановить FFPlay, не фокусируясь на всплывающем окне?
решение1
События нажатия клавиш перехватываются SDL, который и рисует окно дисплея. Таким образом, отсутствие окна равно отсутствию событий нажатия клавиш.
В Windows для удаленного завершения работы ffplay выполните команду:
taskkill /f /im ffplay.exe
предполагая, что у вас запущен только один ffplay. Если нет, получите PID для соответствующего ffplay через
tasklist | findstr ffplay
а потом
taskkill /f /pid XYZ
решение2
ffplay
имеет опцию «автоматического выхода» после завершения воспроизведения аудио- или видеофайла:
ffplay --autoexit /your/media/file.ogg