Как выйти из omxplayer на весь экран?


13

Я хотел воспроизвести видеофайл, удвоив клик по нему с помощью omxplyaer. Первый раз, когда я дважды щелкнул по нему, он попросил выбрать приложение для открытия файла. Так как я не могу найти omxplayer на вкладке установленного приложения, я выбираю вкладку Custome Command Line и ввожу «omxplyer» в командную строку, чтобы выполнить, и снова «omxplayer» в имени приложения.

Теперь, когда я нажимаю на видео, оно начинает воспроизводиться в omxplayer, но горячие клавиши больше не работают. Например, я не могу выйти из видео, нажав «q» на клавиатуре, и ни одна из горячих клавиш не работает. Раньше это работало, когда я проигрывал видеофайл с lxterminal, набирая «omxplayer video.mp4». Но это уже не так.

Если видео начинает воспроизводиться в полноэкранном режиме, и, поскольку я больше не могу выйти из omxplayer, мне нужно посмотреть видео до конца, чтобы проигрыватель вышел. Итак, мой вопрос ...

  1. Как мне снова включить горячую клавишу при воспроизведении видеофайла с опцией «открыть с помощью и затем с помощью omxplayer»?

  2. Как удалить предыдущую командную строку для выполнения, когда я вхожу в omxplayer, чтобы при нажатии на видеофайл мне снова предлагалось выбрать приложение?


Вы можете изменить программу, чтобы открыть файл, щелкнув правой кнопкой мыши файл, «Открыть с помощью…», а затем выбрав программу. Обязательно установите флажок внизу «Установить выбранное приложение как действие по умолчанию для этого типа файлов», если вы этого хотите, или нет, если оно предназначено для одноразового использования.
Lonefish

Выберите опцию «Выполнить в терминале». Ярлыки не работают без терминала.
Уолли

Ответы:


6

Из терминала:

pid=$(pidof omxplayer)
kill $pid

Если это все еще не останавливается, kill -9 $pid .

Вы также можете использовать killall omxplayerи killall -s 9 omxplayer, что должно остановить все запущенные экземпляры (если их может быть больше одного).


Кстати, я получил следующую ошибку при вводе в терминал после завершения воспроизведения видео. "kill: использование: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... или kill -l [sigspec]"
Zip

2
Убедитесь , что есть что - то на самом деле в $pid(вы не можете убить то , что не существует) , и что это просто номер: echo $pid. Если есть нечто большее, чем просто число, вы psошиблись; это должно быть точно ps -o pid= -C omxplayer. Я отредактировал версию скрипта, чтобы учесть это.
Златовласка

Извините нуб здесь. Я не знаю, как ваш ответ связан с моим вопросом. Должен ли скрипт уничтожать текущий запущенный экземпляр omxplayer? Плеер завершает работу после завершения воспроизведения видео. Я просто хочу выйти из плеера, когда он проигрывает видео, например нажать кнопку «х» в окнах, вместо того, чтобы ждать, пока он завершит воспроизведение всего видео.
Zip

1
Если вы не можете выйти из omxplayer через обычный интерфейс, то вам придется подождать, пока он не завершится, или вы убьете его извне. Сценарий является лишь развитием этой концепции. Основная идея заключается в том, что вы открываете другой терминал во время работы omxplayer и убиваете его. Если вы не можете этого сделать (потому что omxplayer захватывает кадровый буфер - я никогда не пробовал его из X), переключитесь на другой VT (виртуальный терминал - их как минимум 6) через ctrl-alt F[1-6](просто попробуйте F-клавиши в порядке, пока вы не получите приглашение войти).
Златовласка

Кстати, вся проблема обычных неработающих горячих клавиш может заключаться в том, что LXDE захватывает их, вы должны иметь возможность настроить LXDE / терминал LXDE, чтобы не использовать перекрывающиеся горячие клавиши.
Златовласка


1

В то время как другие ответы предоставляют некоторую изобретательную магию оболочки, чтобы убить процесс, выполняющий определенную команду, фактически есть две команды, чтобы сделать именно это, и они называются pkillи killall. Из справочных страниц:

pgrep,  pkill  -  look  up  or signal processes based on name and other
                  attributes

killall - kill processes by name

Так

pkill omxplayer
killall omxplayer

должны оба сделать свое дело.

Теперь можно задаться вопросом, почему есть две команды, чтобы сделать то же самое. Причины в основном исторические, восходящие к тому времени, когда различные политики различались немного больше, чем обычно.

Есть также различия в том, какие варианты они принимают. Для более подробного обсуждения различий pkillи killall, пожалуйста, смотрите /unix/91527/whats-the-difference-between-pkill-and-killall


1

Если вы используете опцию «Открыть с помощью» в графическом интерфейсе, вы должны выбрать опцию «Выполнить в эмуляторе терминала».

lxterminal -e omxplayer %F также работает, если вы находитесь на lxde,

Похоже, кнопка «q» и другие ярлыки не работают, если терминал не открыт. Мне приходилось выключать Пи много раз, пока я не понял это.


-1

Используйте эту команду в терминале, чтобы убить omxplayer:

ps -ef | grep omxplayer | grep -v grep | awk '{print $2}' | xargs kill -9

Стоит отметить, что если путь omxplayerнаходится в другом месте, например, /usr/local/binэта команда не будет работать. Более верный способps -ef | grep omxplayer | grep -v grep | awk '{print $2}' | xargs kill -9
Greenonline

вы правы. Я просто скопировал из моего терминала и вставил. Спасибо.
Рубайет

1
Это аккуратная реализация pkill;)
Bex

-2

эй просто попробуйте запустить omxplayer в графическом интерфейсе, связав его с tbo player, он работает отлично


2
Добро пожаловать в Raspberry Pi! Пожалуйста, возьмите тур и посетите справочный центр, чтобы увидеть, как все работает здесь. Как это решает вопрос? Пожалуйста, объясните это, чтобы получить полезный ответ.
Ганима
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.