![]() |
|
Модераторы: xvr |
![]()
|
|
| ABC123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.9.2014 Репутация: нет Всего: нет |
Здравстуйте,
При нажатии разных кнопок хочу запускать, останавливать, паузировать и возобновлять процесс. Только проблема такая. Запускается процесс нормально, останавливается не сразу, а ждет пока файл воспроизведется до конца. Тоже самое и при вызове паузы. А вот из паузы выйти совсем не удается ( игнорируется сигнал?). Скрипт запускает просмотр видео и аудио файлов. Ошибка в коде? Вот такой код:
Это сообщение отредактировал(а) ABC123 - 4.9.2014, 13:29 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Может использовать сокеты или пайпы для этого? Все-таки сигналы вещь специфическая.
|
|||
|
||||
| ABC123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.9.2014 Репутация: нет Всего: нет |
Бес понятия как сокетами или пайпами пользоваться.
Везде написано, SIGSTOP и SIGCONT. А может воспользоваться чем то вроде pause()? Только не пойму как этим пользоваться правильно. пишу вместо SIGSTOP pause() ничего не происходит |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Это нормально. Вы останавливаете bash, который исполняет ваш скрипт, но в момент воспроизведения bash и так стоит, а работает плеер, который и показывает файл. Его вы не останавливаете, так что файл доигрывает до конца. |
|||
|
||||
| ABC123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.9.2014 Репутация: нет Всего: нет |
Да c остановкой проблем больше нет.
А вот воспрос с паузой и продолжением воспроизведения не могу решить вопрос. Это сообщение отредактировал(а) ABC123 - 7.9.2014, 14:44 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
ABC123, тебе же объяснили, что сигналы надо передавать плееру, а не bash'у. Для этого тебе надо запускать плеер напрямую или в скрипте использовать exec для запуска плеера. В противном случае ты не знаешь PID плеера.
|
|||
|
||||
| ABC123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 4.9.2014 Репутация: нет Всего: нет |
На счет запуска плеера.
Нашел исходный код плеера. Вместо скрипта нужно запускать код для плеера? Через командную строку плеер запускается так
Если я посылаю команду kill (0, SIGKILL), то процесс останавливается сразу(тоесть проигрываетель тоже дальше не играет. А вот с паузой выглядит так. Посылаю команду kill (0, SIGSTOP) вот этом случаем плеер доигрыват видео до конца, а потом только остаеавливается. Посылаю команду kill (0, SIGCONT) ничего не происходит. Тоесть эта команда просто игнорируется. Да вообще все команды игнорируются. Посылаю опять kill (0, SIGKILL) тоже ничено не происходит. Это сообщение отредактировал(а) ABC123 - 11.9.2014, 15:06 |
|||
|
||||
| konshyn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Я не совсем понял, что нужно автору. Но из всего, что понял, вот, что я бы сделал.
Я бы вместо скрипта писал полноценную программу - оболочка для плеера. Эта оболочка должна делать fork() или exec() на плеер. Тогда она будет знать pid процесса, которому отправлять сигнал. После запуска плеера, оболочка должна просто перехватывать состояние активности плеера и нажатия клавиш пользователя, и затем отправлять сигнал плееру. Т.к. автор скорее всего писал плеер не сам, то ничего не могу сказать о том, какие сигналы туда посылать и что с ними делать. Но в своем плеере я бы использовал сигналы реального времени (Клац). С этими сигналами можно и отправлять данные. Данные - это были бы команды, что нужно сделать плееру. А в самом плеере поставил бы обработчик этого сигнала (сигналов). -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |