Как проверить, воспроизводит ли mplayer файл или нет?

Я пытаюсь проверить, воспроизводит ли mplayer файл mp3. В настоящее время я использую эту строку из python

strace -p " + str(mplayer.pid) + " 2>&1 | head -n 200 | grep 'read(3'

Это потому, что я знаю, что mplayer делает системные вызовы при чтении файла с дескриптора номер 3. Однако, сколько бы строк я ни анализировал, не происходит ни одной операции чтения.


person Vintage    schedule 08.10.2012    source источник
comment
вы смотрите только на первые 200 строк вывода. этого недостаточно для учета всех системных вызовов, выполняемых во время запуска приложения (которых очень много).   -  person Marc B    schedule 08.10.2012
comment
Он отлично работает для меня. Что показывает strace -p $pid -e read? Рассмотрим другой подход. Нет никакой гарантии, что ввод закончится как fd #3 или что MPlayer будет использовать read для его чтения.   -  person Piotr Praszmo    schedule 08.10.2012
comment
Да, это работает. Действительно, на этот раз он читается с № 4.   -  person Vintage    schedule 08.10.2012
comment
@Banthar Вы можете перефразировать это как ответ, так как ваше решение работает   -  person Eduard Florinescu    schedule 09.10.2012


Ответы (1)


Я знаю только один надежный способ определить, воспроизводит ли MPlayer что-либо, и это запустить его как ведомое устройство и непрерывно читать его ASCII-канал.

Наблюдение за вхождениями текста в этом канале media data not found, Failed to open или STARTING PLAYBACK и завершением процесса (завершение воспроизведения).

person Barry Staes    schedule 12.03.2013