LINUX.ORG.RU
Ответ на: комментарий от GotF

В общем, без костыльных обёрток вряд ли.

GotF ★★★★★
()

С mplayer можно общаться через пайп, но для этого его нужно запустить с соответствующей командой. Протокол в доке есть, он текстовый и достаточно простой.

anotheranonymous
()
Ответ на: комментарий от sprutos

это не лучший вариант всё-таки. проигрыватель может читать какие угодно файлы, кроме того, который играет, например, конфиг

name_no ★★
()

отправляйте лог мплеера в файл и парсите его. так сделано в смплеере и моем скрипте для х-чата.

iSage ★★★★
()
Ответ на: комментарий от anonymus88

а выгрепать только медиаформаты не варик?

для xmms этот вариант тоже полон рейсов. например, он может кешировать любой файл из плейлиста, может заранее или в произвольный момент времени подтягивать теги, может что угодно. Для mplayer более или менее подходит, но если уж идти по файловым дескрипторам, то вместо lsof проще заюзать

$ ls /proc/$(pidof mplayer)/fd -l
итого 0
lrwx------ 1 combine users 64 Апр  6 09:31 0 -> /dev/pts/2
lrwx------ 1 combine users 64 Апр  6 09:31 1 -> /dev/pts/2
lrwx------ 1 combine users 64 Апр  6 09:31 2 -> /dev/pts/2
lr-x------ 1 combine users 64 Апр  6 09:31 3 -> /dev/input/js0
lr-x------ 1 combine users 64 Апр  6 09:31 4 -> /media/Collection/Music/F.P.G./1999 - Родина ждет героев.../02 - Милиция.flac
lr-x------ 1 combine users 64 Апр  6 09:31 5 -> /dev/snd/timer
lrwx------ 1 combine users 64 Апр  6 09:31 6 -> /dev/snd/pcmC0D0p
lrwx------ 1 combine users 64 Апр  6 09:31 7 -> /dev/snd/controlC0

кстати, можно даже попробовать ориентироваться на номер файлового дескриптора, у меня на двух машинах держится «4»

name_no ★★
()
Ответ на: комментарий от name_no

какие угодно файлы, кроме того, который играет, например, конфиг

Можно конфиги, бинарники и т. п. исключить:

lsof -n | grep mplayer | egrep -v \(\/usr\/bin\|\/dev\/\|^\/$\|$HOME\/\.mplayer\)

Xenesz ★★★★
()
Ответ на: комментарий от name_no

Красивее - да, но расширения не тру. В имени файла иногда, как на том заборе, одно написано, а внутре другое. Настоящие джедаи отличают тип медиафайла по мэджикам.

Xenesz ★★★★
()
Ответ на: комментарий от name_no

>проигрыватель может читать какие угодно файлы, кроме того, который играет, например, конфиг

если ли бы ты проверил несколько раз, то заметил, почему «grep ' 7r '»

хотя метод, конечно, не ахти
как отрезать то лишнюю инфу?
например,

lsof -n |grep xmms |grep ' 7r '

xmms 1474 user 7r REG 8,10 11269599 3186737 /media/sda10/music/tmp/Classic FM Guitar - The Ultimate Classical guitar Album/CD1/03_Craig_Ogden_Le_Onde.mp3

нужно, чтобы выводилось только от / и до конца строки

sprutos ★★★
()
Ответ на: комментарий от sprutos

проигрыватель может читать какие угодно файлы, кроме того, который играет, например, конфиг

если ли бы ты проверил несколько раз, то заметил, почему «grep ' 7r '»

я не проверял несколько раз только потому, что в топике речь идёт про mplayer, а не про xmms. Ну а про номер файлового дескриптора выше написали, что на него полагаться нельзя. Тем более, в твоём случае достаточно, например, подгрузить библиотеку с названием lib7r.so или сделать vim mplayer7r.txt, чтобы всё сломать )))

И вообще, не понимаю, чего все к lsof привязались, когда все открытые файлы есть в proc

name_no ★★
()
Ответ на: комментарий от name_no

ты опять невнимателен )) 7r обрамлён пробелами не зря.

доработал немного оба метода

ls /proc/$(pidof xmms)/fd -l | grep -Po ' 7 -> .*' | grep -Po — '-> .*'
lsof -n |grep xmms |grep ' 7r ' |grep -Po ' /.*'

sprutos ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.