ฉันจะออกจาก omxplayer แบบเต็มหน้าจอได้อย่างไร


13

ฉันต้องการเล่นไฟล์วิดีโอโดยคลิกสองเท่าโดยใช้ omxplyaer ครั้งแรกฉันคลิกสองครั้งที่มันมันขอให้ฉันเลือกแอปพลิเคชันเพื่อเปิดไฟล์ เนื่องจากฉันไม่พบ omxplayer ในแท็บแอปพลิเคชันที่ติดตั้งฉันเลือกแท็บ Custome Command Line และป้อน 'omxplyer' ในบรรทัดคำสั่งเพื่อดำเนินการและ 'omxplayer' อีกครั้งในชื่อแอปพลิเคชัน

ตอนนี้เมื่อฉันคลิกที่วิดีโอก็เริ่มเล่นใน omxplayer แต่ปุ่มลัดไม่ทำงานอีกต่อไป ตัวอย่างเช่นฉันไม่สามารถออกจากวิดีโอโดยกดปุ่ม 'q' บนแป้นพิมพ์และปุ่มลัดไม่ทำงาน สิ่งนี้เคยทำงานเมื่อฉันเล่นไฟล์วิดีโอจาก lxterminal โดยพิมพ์ 'omxplayer video.mp4' แต่นี่ไม่ใช่กรณีอีกต่อไป

หากวิดีโอเริ่มเล่นแบบเต็มหน้าจอและเนื่องจากฉันไม่สามารถออกจาก omxplayer ได้ฉันต้องดูวิดีโอจนจบเพื่อที่ผู้เล่นจะออก ดังนั้นคำถามของฉันคือ ...

  1. ฉันจะเปิดใช้งานปุ่มลัดอีกครั้งได้อย่างไรเมื่อฉันเล่นไฟล์วิดีโอด้วยตัวเลือก 'open with and omxplayer'

  2. ฉันจะลบบรรทัดคำสั่งก่อนหน้าเพื่อดำเนินการในตำแหน่งที่ฉันป้อน omxplayer ได้อย่างไรเมื่อฉันคลิกที่ไฟล์วิดีโอมันจะขอให้ฉันเลือกแอปพลิเคชันอีกครั้ง


คุณสามารถเปลี่ยนโปรแกรมเพื่อเปิดไฟล์โดยคลิกขวาที่ไฟล์ "Open with .. " จากนั้นเลือกโปรแกรม ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องด้านล่าง "ตั้งค่าแอปพลิเคชันที่เลือกเป็นการกระทำเริ่มต้นสำหรับไฟล์ประเภทนี้" หากคุณต้องการหรือไม่ใช้เพื่อการใช้งานเพียงครั้งเดียว
Lonefish

เลือกตัวเลือก "ดำเนินการในเทอร์มินัล" ปุมลัดจะไมทำงานหากไมมีเครื่องเทอร์มินัล
เก่ง

คำตอบ:


6

จากสถานี:

pid=$(pidof omxplayer)
kill $pid

kill -9 $pidหากยังไม่หยุด

คุณสามารถใช้killall omxplayerและkillall -s 9 omxplayerซึ่งควรจะหยุดอินสแตนซ์ที่กำลังทำงานอยู่ทั้งหมด (หากมีมากกว่าหนึ่ง)


โดยวิธีการที่ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันใส่มันลงใน terminal หลังจากวิดีโอเล่นเสร็จ "kill: การใช้งาน: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... หรือ kill -l [sigspec]"
ซิป

2
ตรวจสอบว่ามีบางสิ่งบางอย่างจริงใน$pid(คุณไม่สามารถฆ่าสิ่งที่ไม่ได้อยู่) echo $pidและว่ามันเป็นเพียงตัวเลข: หากมีมากกว่าตัวเลขแสดงว่าคุณpsผิด ps -o pid= -C omxplayerมันจะต้องเป็นว่า ฉันได้แก้ไขเวอร์ชันของสคริปต์ไปยังบัญชีของสิ่งนี้
goldilocks

ขออภัย noob ที่นี่ ฉันไม่ทราบว่าคำตอบของคุณเกี่ยวข้องกับคำถามของฉันอย่างไร สคริปต์ควรจะฆ่าอินสแตนซ์ omxplayer ที่กำลังทำงานอยู่หรือไม่? ผู้เล่นไม่ออกหลังจากเล่นวิดีโอเสร็จแล้ว ฉันแค่ต้องการออกจากโปรแกรมเล่นเมื่อเล่นวิดีโอเช่นคลิกปุ่ม 'x' บน windows แทนที่จะรอให้มันเล่นเสร็จทั้งวิดีโอ
Zip

1
หากคุณไม่สามารถออกจาก omxplayer ผ่านทางอินเทอร์เฟซปกติคุณต้องรอให้เสร็จหรือไม่ก็ฆ่ามันจากภายนอก สคริปต์เป็นเพียงรายละเอียดของแนวคิดนั้น แนวคิดพื้นฐานคือคุณเปิดเทอร์มินัลอื่นในขณะที่ omxplayer ทำงานและฆ่ามัน หากคุณทำเช่นนั้นไม่ได้ (เพราะ omxplayer คว้า framebuffer - ฉันไม่เคยลองจากใน X) ให้เปลี่ยนไปใช้ VT อื่น (เทอร์มินัลเสมือน - มีอย่างน้อย 6) ผ่านทางctrl-alt F[1-6](ลองใช้ปุ่ม F เพื่อจนกว่าคุณจะได้รับพรอมต์เข้าสู่ระบบ)
goldilocks

BTW: ปัญหาทั้งหมดของปุ่มลัดปกติไม่ทำงานอาจเป็นเพราะ LXDE กำลังถูกจับคุณควรจะสามารถกำหนดค่า LXDE / ขั้ว LXDE ให้ไม่ใช้ปุ่มลัดที่ทับซ้อนกัน
goldilocks


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

หากคุณใช้ตัวเลือก "เปิดด้วย" จาก GUI คุณต้องเลือกตัวเลือก "ดำเนินการในเทอร์มินัลอีมูเลเตอร์"

lxterminal -e omxplayer %F ยังทำงานได้ถ้าคุณอยู่บน lxde

ดูเหมือนว่าปุ่ม 'q' และทางลัดอื่น ๆ จะไม่ทำงานหากเทอร์มินัลไม่เปิด ฉันต้องปิดไฟ Pi หลายครั้งจนกระทั่งฉันคิดออก


-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

คุณพูดถูก ฉันเพิ่งคัดลอกมาจาก terminal ของฉันและวาง ขอขอบคุณ.
Rubayet

1
เป็นการใช้งานที่เป็นระเบียบของpkill;)
Bex

-2

เฮ้แค่พยายามเรียกใช้ omxplayer ใน gui โดยเชื่อมโยงกับผู้เล่น tbo มันทำงานได้อย่างสมบูรณ์


2
ยินดีต้อนรับสู่ราสเบอร์รี่ Pi! กรุณาใช้การท่องเที่ยวและเยี่ยมชมศูนย์ช่วยเหลือเพื่อดูว่าสิ่งที่ทำงานที่นี่ คำถามนี้ตอบคำถามได้อย่างไร โปรดอธิบายเพิ่มเติมเพื่อให้คำตอบนั้นเป็นประโยชน์
Ghanima
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.