Заставить MPlayer показывать все сообщения об изменении состояния воспроизведения на выходе

В настоящее время я использую MPlayer в режиме slave для видеоплеера, который я делаю.

На данный момент медиаплеер показывает ==== PAUSED ==== когда он приостановлен, и я могу прочитать выходные данные для этого состояния, чтобы знать, когда видео приостановлено.

Командная строка, которую я использую сейчас: msglevel identify=6:statusline=-1 (я отключил статусную строку A: 0.7 V: 0.6 A-V: 0.068 ... и ненужные мелочи)

Что мне нужно, чтобы установить msglevel (или что-то еще), чтобы он также показывал ==== PLAYING ==== или любой признак того, что он начал воспроизведение, остановился, медиа закончился, загрузка и т. д.?

2 ответа

Решение

Я узнал, как получить, если видео приостановлено.

Отправив команду pausing_keep_force get_property pause для mplayer, он отвечает ANS_pause=no если не сделать паузу, и ANS_pause=yes если приостановлено Задача решена.

Исходя из того, что я могу расшифровать из ответа ОП на его / ее собственный вопрос, он / она искал способ определить, был ли mplayer приостановлен или играет. Я написал небольшой скрипт bash, который может справиться с этой задачей с помощью нескольких простых вызовов функций.

На самом деле вы можете просмотреть последние несколько строк вывода mplayer, чтобы увидеть, не приостановлен ли mplayer. Я собрал небольшую библиотеку bash, которую можно использовать для запроса некоторой информации о состоянии mplayer. Посмотрите на мой GitHub. Есть инструкции по интеграции моего скрипта с другими скриптами bash.

Если вы реализуете мой сценарий, вам нужно будет воспроизвести ваш медиафайл, используя playMediaFile функция. Тогда вы можете просто позвонить isPaused функционировать как условие в Bash, как это:

if isPaused; then
    # do something
fi

# or
if ! isPaused; then
    # do something
fi

# or
ifPaused && #do something
Другие вопросы по тегам