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

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

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

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

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


person godly-devotion    schedule 10.08.2011    source источник


Ответы (2)


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

Отправив команду pausing_keep_force get_property pause в mplayer, он ответит ANS_pause=no, если не приостановлено, и ANS_pause=yes, если приостановлено. Проблема решена.

person godly-devotion    schedule 11.08.2011
comment
Привет, у меня такая же проблема. Как вы получаете это значение как переменную? Когда я запускаю вашу команду, в консоли появляется ANS_pause, где был запущен mplayer. - person peter; 02.06.2016
comment
@peter, вам нужно сбросить все выходные данные mplayer в файл или fifo и выполнить поиск. mplayer myfile.mp3 > /tmp/mplayerDump - person b_laoshi; 19.11.2018

Основываясь на том, что я могу расшифровать из ответа ОП на его / ее собственный вопрос, он / она искал способ определить, был ли 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
person b_laoshi    schedule 19.11.2018