Jak wyjść z omxplayera na pełnym ekranie?


13

Chciałem odtworzyć plik wideo, klikając go dwukrotnie za pomocą omxplyaer. Za pierwszym razem kliknąłem go dwukrotnie, prosi mnie o wybranie aplikacji do otwarcia pliku. Ponieważ nie mogę znaleźć omxplayera w zakładce zainstalowanej aplikacji, wybieram zakładkę Custome Command Line i w wierszu poleceń wpisuję „omxplyer”, a następnie ponownie „omxplayer” w nazwie aplikacji.

Teraz, kiedy klikam wideo, zaczyna się odtwarzanie w omxplayer, ale skróty klawiszowe już nie działają. Na przykład nie mogę wyjść z wideo, naciskając klawisz „q” na klawiaturze i nic z tego skrótu nie działa. To działało, kiedy odtwarzałem plik wideo z lxterminal, wpisując „omxplayer video.mp4”. Ale tak już nie jest.

Jeśli wideo zacznie się odtwarzać na pełnym ekranie, a ponieważ nie mogę już zamknąć programu omxplayer, muszę obejrzeć film, aby zakończyć, aby odtwarzacz mógł wyjść. Więc moje pytanie brzmi ...

  1. Jak ponownie włączyć klawisz skrótu, gdy odtwarzam plik wideo z opcją „otwórz za pomocą, a następnie omxplayer”?

  2. Jak usunąć poprzednią linię poleceń, aby wykonać polecenie wprowadzania omxplayer, aby po kliknięciu pliku wideo ponownie poprosił mnie o wybranie aplikacji?


Możesz zmienić program, aby otworzyć plik, klikając prawym przyciskiem myszy plik „Otwórz za pomocą…”, a następnie wybierając program. Pamiętaj, aby zaznaczyć pole wyboru na dole „Ustaw wybraną aplikację jako domyślną akcję dla tego typu pliku”, jeśli chcesz, lub nie, jeśli jest to do jednorazowego użytku.
Lonefish

Wybierz opcję „Wykonaj w terminalu”. Skróty nie działają bez terminala.
Wally

Odpowiedzi:


6

Z terminala:

pid=$(pidof omxplayer)
kill $pid

Jeśli jeszcze nie zatrzymać kill -9 $pid.

Możesz także użyć killall omxplayeri killall -s 9 omxplayer, co powinno zatrzymać wszystkie działające instancje (jeśli może istnieć więcej niż jedna).


Nawiasem mówiąc, otrzymałem następujący błąd, gdy wprowadzam go do terminala po zakończeniu odtwarzania wideo. „kill: użycie: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... lub kill -l [sigspec]”
Zip

2
Upewnij się, że coś jest rzeczywiście w $pid(nie można zabić coś, co nie istnieje) i że jest tylko numer: echo $pid. Jeśli jest coś więcej niż tylko liczba, psto myliłeś się; to musi być dokładnie ps -o pid= -C omxplayer. Zedytowałem wersję skryptu, aby to uwzględnić.
złotowłosy

Przepraszam noob tutaj. Nie wiem, jak twoja odpowiedź ma związek z moim pytaniem. Czy skrypt ma zabić bieżącą działającą instancję omxplayer? Jednak odtwarzacz kończy pracę po zakończeniu odtwarzania wideo. Chcę tylko wyjść z odtwarzacza, gdy odtwarza wideo, jak na przykład kliknięcie przycisku „x” w oknach zamiast oczekiwania na zakończenie odtwarzania całego wideo.
Zip

1
Jeśli nie możesz wyjść z omxplayera przez normalny interfejs, musisz poczekać, aż zakończy się, lub zabić go zewnętrznie. Scenariusz jest tylko rozwinięciem tej koncepcji. Podstawową ideą jest otwarcie innego terminalu podczas działania omxplayera i zabicie go. Jeśli nie możesz tego zrobić (ponieważ omxplayer chwyta bufor ramki - nigdy nie próbowałem tego w X), przełącz się na inny VT (terminal wirtualny - jest co najmniej 6) za pomocą ctrl-alt F[1-6](po prostu spróbuj klawiszy F w kolejności, aż pojawi się monit o zalogowanie się).
złotowłosy

BTW: Cały problem normalnych skrótów klawiszowych może nie działać, ponieważ LXDE je chwyta, powinieneś być w stanie skonfigurować LXDE / terminal LXDE, aby nie używał nakładających się skrótów klawiszowych.
złotowłosy


1

Podczas gdy inne odpowiedzi dostarczają pewnej wynalazczej magii powłoki, aby zabić proces uruchamiający określone polecenie, w rzeczywistości istnieją dwa polecenia, aby to zrobić, i są one wywoływane pkilli killall. Ze stron podręcznika:

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

killall - kill processes by name

Więc

pkill omxplayer
killall omxplayer

powinni obaj załatwić sprawę.

Teraz można się zastanawiać, dlaczego istnieją dwa polecenia, aby zrobić to samo. Powody są głównie historyczne, sięgające czasów, kiedy różne jednorożce różniły się nieco bardziej niż zwykle.

Istnieją również różnice w zakresie akceptowanych opcji. Aby uzyskać dłuższą dyskusję na temat różnic pkilli killall, zobacz /unix/91527/whats-the-difference-between-pkill-and-killall


1

Jeśli używasz opcji „Otwórz za pomocą” w GUI, musisz wybrać opcję „Uruchom w emulatorze terminali”.

lxterminal -e omxplayer %F działa również, jeśli korzystasz z LXDE,

Wygląda na to, że przycisk „q” i inne skróty nie działają, jeśli terminal nie jest otwarty. Musiałem wyłączyć Pi wiele razy, aż to rozgryzłem.


-1

Użyj tego polecenia w terminalu, aby zabić omxplayer:

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

Warto zauważyć, że jeśli ścieżka do omxplayerznajduje się w innej lokalizacji, na przykład /usr/local/binto polecenie nie będzie działać. Bardziej pewną metodą byłobyps -ef | grep omxplayer | grep -v grep | awk '{print $2}' | xargs kill -9
Greenonline,

masz rację. właśnie skopiowałem z mojego terminala i wkleiłem. Dziękuję Ci.
Rubayet,

1
To fajna implementacja pkill;)
Bex

-2

hej, po prostu spróbuj uruchomić omxplayer w GUI, łącząc go z tbo player, działa idealnie


2
Witamy w Raspberry Pi! Proszę wziąć wycieczkę i odwiedzić HelpCenter , aby zobaczyć, jak działają tutaj rzeczy. Jak to rozwiązuje pytanie? Proszę wyjaśnić więcej, aby była to pomocna odpowiedź.
Ghanima
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.