LINUX.ORG.RU

Как остановить mplyer из другово процесса?

 , , ,


1

1

Добрый вечер!

Есть задача:

1. Играет ролик.

2. По определенному событию надо запустить другой (короткий) ролик. При этом, перый надо либо запаузить, либо запомнить, на каком месте он играет и выключить.

3. По завершению второго ролика надо опять включить проигрывание первого с того же места (где его запаузили/выключили).

Как послать mplayer-у «сигнал пауза»? Либо как запомнить, где он остановился (если ему послали kill/term сигнал), и запустить его этого места?

В качестве плеера палнируется mplayer. Вывод должен идти на отдельный монитор (DISPLAY). Запуск плеера будет производиться скорее всего из C++/Qt5 кода.

Mplayer использовать не обязательно, подойдет и любой другой. Qt/C++ - не обязательно, подойдет и решение для любого shell скрипта. Хотя, если есть возможность сделать это средствами Qt, то почему бы и нет. По сути надо каким то боком паузить thread или дочерний процесс, в котором будет работать первый плеер.

Заранее благодарен за Ваши советы.

★★

лови алгоритм, реализовывать будешь сам:

1) Запускаешь плееры таким образом, чтобы создавалось /dev/pts устройство, т.е. из псевдотерминала
2) Посылаешь «p» в нужное устройство
3) Получаешь паузу (т.к. нажатие на кнопку P приводит к pause/unpause в mplayer)

Вперед

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

А зачем псевдотерминал? У мплеера опция есть специальная, им можно через стдин управлять. Я когда-то сам делал с кпроцесс.

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

Спасиб огромное!

ман большой у mplayer-a, сразу не найдешь) Да и чета гугл результата не дал.....

ps: если, честно, так и думал, что должно быть что-либо подобное у mplayer-а. Но сразу не нашел. Правда и искал не особо сильно;)

ps: c pts тоже нормальная идея, но реализация сложнее...

samson ★★
() автор топика

запускаешь с опцией -slave

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

Либо посылаешь «pause» и запускаешь новый экземпляр mplayer-а, либо «get_property time_pos» и при следующем запуске делаешь «seek»

Harald ★★★★★
()

не читал портянку, но ты ведь уже выучил man mplayer и знаешь всё-всё про его режимы сделанные как раз для управления им из других программ.

anonymous
()
Ответ на: комментарий от fluorite

чё там принципиально новая инновационная QtOS?

A multimedia playback framework based on Qt and FFmpeg. It helps you to write a player easily

It helps you to write a player easily

ыыыыыы как раз для ЛОРа. больше плееров!

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