การประกาศ : โครงการนี้ถูกแทนที่ทั้งหมดโดย https://github.com/bazzacuda/minimalistmediaplayerx/ ซึ่งสร้างขึ้นบน MPV API ที่มีชื่อเสียง Libmpv ( เวอร์ชัน 3 ออกมาแล้ว !! ) มันให้การควบคุมที่เหนือกว่าประสบการณ์การเล่นเสียงและวิดีโอของคุณ (และรูปภาพ!) รวมถึงการซูมที่เหมาะสมกระทะการหมุนเฟรมไปข้างหน้าและย้อนกลับ (!) คำบรรยายความสว่างความคมชัดแกมมาและความอิ่มตัวภาพหน้าจอและการแก้ไขอย่างรวดเร็ว
เว้นแต่ว่าฉันได้รับคำขอเฉพาะสำหรับการแก้ไข (แก้ไขข้อผิดพลาด) การเปิดตัวในปัจจุบันของเครื่องเล่นสื่อมินิมัลลิสต์รุ่นนี้ (สร้างขึ้นบนการควบคุม Windows Media Player ที่มี จำกัด ของ Microsoft มากขึ้น) น่าจะเป็นครั้งสุดท้าย ลาใช้คนรับใช้ที่ซื่อสัตย์!
เครื่องเล่นสื่อที่เรียบง่าย แต่มีประสิทธิภาพมากที่สร้างขึ้นรอบการควบคุม Windows Media Player ActiveX
Minimalist Media Player ให้ทั้งส่วนติดต่อผู้ใช้ที่เรียบง่าย/คีย์บอร์ดที่ดำเนินการ (ดังนั้นการควบคุมบนหน้าจอจะไม่เบี่ยงเบนจากวิดีโอ) และการควบคุมที่จะดูวิดีโอในหน้าต่างมินิมัลลิสต์โดยมีตัวเลือกที่จะไม่มีพรม สิ่งนี้ให้ประสบการณ์การรับชมที่ดื่มด่ำแม้จะเล่นในโหมดหน้าต่างแทนที่จะเป็นแบบเต็มหน้าจอ
แม้ว่าจะมีการควบคุมมากมายที่ต้องจำ แต่ฉันพยายามใช้ตัวอักษรแต่ละตัวโดยสังหรณ์ใจ คำอธิบายการดำเนินการควรช่วยเชื่อมโยงการกระทำกับจดหมาย
| ควบคุม | การกระทำ |
|---|---|
ALT-SPACEBAR | เปิดใช้งานเมนูระบบเพื่อไปยังกล่องเกี่ยวกับ |
ESCape | ออกจากโหมดเต็มหน้าจอหรือออกจากแอพถ้าอยู่ในโหมดหน้าต่าง |
SPACEBAR | การเล่นหยุดชั่วคราว/เรซูเม่ (ยังให้เมาส์ดับเบิลดับเบิล |
Ctrl-Up Arrow | เพิ่มความเร็วในการเล่น 10% |
/ | เพิ่มความเร็วในการเล่น 10% |
Ctrl-Down Arrow | ลดความเร็วในการเล่น 10% |
| ลดความเร็วในการเล่น 10% |
F12 | เปิดไฟล์สื่อในตัวแก้ไขวิดีโอของบุคคลที่สาม (ปัจจุบัน shotcut) |
= | คัดลอกชื่อไฟล์สื่อไปยังคลิปบอร์ด |
A | เล่นไฟล์สื่อแรกในเพลย์ลิสต์ (z เล่นเป็นครั้งสุดท้าย) |
B | [b] ขาด/ฟื้นฟูความคืบหน้า [b] AR |
C | แสดง/ซ่อนบนหน้าจอ [c] ontrols และการประทับเวลาไฟล์สื่อ (Windows สื่อทั้งหมด) |
Ctrl-C | แสดง/ซ่อนการควบคุมบนหน้าจอทั้งหมดการประทับเวลาของไฟล์สื่อและข้อมูลเมตาสื่อ (Windows สื่อทั้งหมด) |
D และ DEL | [D] ไฟล์สื่อปัจจุบันของ Elete (หลังการยืนยัน) |
Ctrl-D and Ctrl-DEL | [D] Elete ไฟล์ทั้งหมดในโฟลเดอร์ของไฟล์สื่อปัจจุบัน (หลังการยืนยัน) |
E | [E] ARS - เสียงปิดเสียง/เปิดเสียง |
F | แสดง/ยกเลิก [F] โหมด UllScreen |
G | [G] ขนาดหน้าต่าง Reate |
Ctrl-G | ลดคือ un [g] reater ขนาดหน้าต่าง |
H | วางตำแหน่งหน้าต่าง [h] orizontally (และแนวตั้ง) ที่กึ่งกลางของหน้าจอ |
I | ซูม [i] n 10% ของความสูงและความกว้างของวิดีโอ |
J | AD [J] UST อัตราส่วนมุมมองของหน้าต่างเพื่อให้ตรงกับอัตราส่วนของวิดีโอ |
K | ทำเครื่องหมายไฟล์สื่อนี้เป็น [k] eep |
L | อีกครั้ง [l] oad รายการไฟล์สื่อที่รองรับจากโฟลเดอร์ปัจจุบัน |
M | [M] หน้าต่าง Aximize / Restore |
N | mi [n] imize window ไปยังแถบงาน Windows |
O | ซูม [O] UT 10% ของความสูงและความกว้างของวิดีโอ |
P | หยุดไฟล์สื่อชั่วคราวและเล่นแทนด้วย [p] otplayer หากติดตั้ง |
Q | เล่นไฟล์สื่อก่อนหน้าใน [q] ueue/playlist |
R | [r] ename ไฟล์สื่อปัจจุบัน |
S | re [s] ทาร์ตไฟล์สื่อปัจจุบันตั้งแต่ต้นหรือที่รู้จัก |
T | [T] AB ผ่านไฟล์สื่อ A 200, 100 (ค่าเริ่มต้น), 50, 20 หรือ 10 ของระยะเวลา (ใช้ shift-alt, alt, shift, caps ล็อคเพื่อแก้ไข) (Media Windows ทั้งหมด) |
Ctrl-T | [t] ab กลับผ่านไฟล์สื่อ A 100 (ค่าเริ่มต้น), 50, 20 หรือ 10 ของระยะเวลา (ใช้ alt, shift, caps ล็อคเพื่อแก้ไข) (Media Windows ทั้งหมด) |
TAB | แท็บส่งต่อ 1/200th ระยะเวลาของไฟล์สื่อ (เฉพาะหน้าต่างสื่อที่เลือก) |
Ctrl-TAB | แท็บย้อนกลับ 1/200th ระยะเวลาของไฟล์สื่อ (เฉพาะหน้าต่างสื่อที่เลือก) |
U | [u] nzoom, IE เข้ากับวิดีโอใหม่กับหน้าต่าง |
V | เพิ่ม / คืนค่าสูงสุด [v] iew เช่นเดียวกับ [m] |
W | [W] Atch วิดีโอถัดไปในรายการ (หรือเล่นเสียงถัดไป) |
X | E [x] มันเป็นแอปพลิเคชัน |
Y | tr [y] ออกไฟล์สื่อโดยการสุ่มตัวอย่างในขั้นตอนต่าง ๆ |
Z | เล่นไฟล์สื่อสุดท้ายในเพลย์ลิสต์ (เล่นครั้งแรก) |
Up Arrow | เพิ่มระดับเสียง 1% |
Down Arrow | ลดระดับเสียงลง 1% |
Ctrl-Up Arrow | เพิ่มความเร็วในการเล่น 10% |
Ctrl-Down Arrow | ลดความเร็วในการเล่น 10% |
0 | แสดงคำบรรยายภาพสื่อสั้น ๆ (Windows สื่อทั้งหมด) |
1 | รีเซ็ตความเร็วในการเล่นเป็นปกติเช่น [1] 00% |
2 | ปรับขนาดหน้าต่างเพื่อให้สามารถวางแอปพลิเคชัน 2 อินสแตนซ์แบบเคียงข้างกันได้ |
4 | ปรับขนาดเป็นหน้าต่างขนาดเล็กที่มุมบนขวาของหน้าจอ |
Ctrl-4 | ย้ายไปที่มุมบนขวาของหน้าจอ แต่รักษาขนาดหน้าต่างปัจจุบัน |
5 | บันทึก/บุ๊คมาร์คการประทับเวลาของไฟล์สื่อปัจจุบันเป็นไฟล์ INI |
6 | ดึงการประทับเวลาของไฟล์สื่อที่บันทึกไว้/บุ๊กมาร์กจากไฟล์ INI และเล่นต่อจากจุดนั้นต่อไป |
7 | ลบการประทับเวลาของไฟล์สื่อที่บันทึกไว้ก่อนหน้านี้/บุ๊กมาร์กก่อนหน้านี้ |
8 | ตั้งค่าวิดีโอเป็น 1 พิกเซลที่ใหญ่กว่าหน้าต่างทั้งสี่ด้าน |
9 | ปรับขนาดหน้าต่างตามความกว้างของวิดีโอ |
RIGHT ARROW | ก้าวไปข้างหน้าหนึ่งเฟรม |
LEFT ARROW | ก้าวถอยหลังหนึ่งเฟรม |
| ซูม | |
Ctrl-RIGHT ARROW | เมื่อซูมเข้า/ออกให้ย้ายวิดีโออยู่ด้านในหน้าต่าง |
Ctrl-LEFT ARROW | เมื่อซูมเข้า/ออกให้ย้ายวิดีโอด้านซ้ายเข้าไปในหน้าต่าง |
Ctrl-UP ARROW | เมื่อซูมเข้า/ออกให้เลื่อนวิดีโอขึ้นภายในหน้าต่าง |
Ctrl-DOWN ARROW | เมื่อซูมเข้า/ออกให้ย้ายวิดีโอลงภายในหน้าต่าง |
| เพิ่มเติม | |
Left Click on the window background and hold | หน้าต่างสามารถลาก/จัดตำแหน่งใหม่ได้โดยไม่ต้องมีแถบชื่อเรื่องหน้าต่าง |
Left double-click video | หยุดชั่วคราว / เล่นกลับ |
Right single-click video | หยุดชั่วคราว / เล่นกลับ |
SHIFT key (either) | แสดงหรือซ่อนหน้าต่างช่วยเหลือแสดงรายการฟังก์ชันแป้นพิมพ์ทั้งหมด |
Ctrl-9 | การจัดเรียงอัตโนมัติมากถึง 12 อินสแตนซ์ของ Minimalist Media Player ในตาราง 4x3 (หน้าต่างสื่อทั้งหมด) |
Ctrl-0 | ปิดอินสแตนซ์ของ Minimalist Media Player ทั้งหมด (Windows สื่อทั้งหมด) |
แทนที่จะใช้คำของ Microsoft ว่า Windows Media Player ActiveX ควบคุมรายการรูปแบบไฟล์สื่อที่เผยแพร่แล้วฉันได้ทดสอบรูปแบบไฟล์จำนวน Minimalist Media Player
.wmv .mp4 .avi .flv .mpg .mpeg .mkv .3gp .mov .m4v .vob .ts .webm .divx .m2ts .flac .rm .asf .m4a .mp3 .wav .aac .mts
สามารถเพิ่มรูปแบบและการขยายไฟล์เพิ่มเติมได้อย่างง่ายดายเมื่อพวกเขาได้รับการยืนยันให้ทำงาน WMP มีปัญหาในการเล่นไฟล์ FLV บางไฟล์ซึ่งเป็นเรื่องแปลก ๆ หายไปถ้าคุณเปลี่ยนชื่อไฟล์เป็นรูปแบบอื่นเช่น MP4
เพื่อให้คุณสามารถเปิดโครงการและแสดงแบบฟอร์มหลักที่มีส่วนประกอบ Windows Media Player ActiveX จากเมนูใน RAD Studio / Delphi คุณจะต้องทำ "ส่วนประกอบ / การนำเข้าส่วนประกอบ ... / นำเข้าควบคุม ActiveX" และเลือก Windows Media Player จากรายการ RAD Studio จะสร้างหน่วยนี้โดยอัตโนมัติและติดตั้งส่วนประกอบไปยัง Palette ActiveX
แทนที่จะทำตามฝูงฉันชอบที่จะทดสอบด้วยวิธีที่แตกต่างกันในการจัดวางรหัสของฉันและทำให้สามารถอ่านได้และเข้าใจได้ง่ายขึ้นโดยผู้ที่มองมันเป็นครั้งแรกและเพื่อตัวเองเมื่อกลับมาหลายเดือนหรือหลายปีต่อมา
ฉันใช้ Delphi IDE กับตัวแก้ไขรหัสขนาด 180 ตัวอักษร มันทำให้ฉันเป็นคนบ้าที่เราดูเหมือนจะไม่ใช้ประโยชน์จากจอมอนิเตอร์ไวด์สกรีนความละเอียดสูงของเราอย่างเต็มที่เมื่อแก้ไขรหัส (Delphi ยังคงปิดการใช้งานขั้นตอนการจัดการเหตุการณ์ที่คอลัมน์ 56 โดยอัตโนมัติโดยไม่คำนึงถึงวิธีที่ฉันได้กำหนดระยะขอบ!) : D ดังนั้นประการแรกฉันใช้ประโยชน์จากคอลัมน์ทั้งหมด 180 คอลัมน์ทั้งหมดของบรรณาธิการของฉัน
ฉันไม่ชอบซ้อนกันถ้างบ ฉันคิดว่าพวกเขาน่าเกลียดยากที่จะติดตามและมีแนวโน้มที่จะเกิดข้อผิดพลาดของมนุษย์เมื่อแก้ไข/ขยายพวกเขา ดังนั้นฉันไม่ได้ใช้ถ้าคำสั่งเลยและใช้คำสั่งเคสแทนเสมอ ฉันคิดว่าพวกเขา neater และดูสง่างามมากขึ้นง่ายขึ้นอย่างมากในการติดตามและแก้ไขและโดยสิ้นเชิงเหนือกว่าที่เทียบเท่ากับซ้อนกันของพวกเขา ฉันไม่ต้องสงสัยเลยว่าหลายคนไม่เห็นด้วย
ฉันชอบที่จะทดลองด้วยวิธีการต่าง ๆ ในการแยกคำจำกัดความส่วนต่อประสานผู้ใช้ออกจากตรรกะของโปรแกรมทั่วไปและวิธีการจัดการตัวแปรทั่วทั้งแอปพลิเคชัน สำหรับโครงการนี้ทั้งสามยังคงอยู่ใน Main.pas แต่ในโครงการขนาดใหญ่กว่าที่มีหลายหน่วยวิธีที่ฉันแยกออกจากกันสามารถนำมาใช้โดยวางไว้ในหน่วยแยกต่างหาก คำวิจารณ์เพียงอย่างเดียวของฉันเกี่ยวกับ Delphi การย้อนกลับไปยัง V1 เป็นวิธีที่ (และหนังสือหลายเล่ม) ส่งเสริมให้รหัสทั้งหมดอยู่ในหน่วยของแบบฟอร์มและขั้นตอนการจัดการเหตุการณ์ เราใช้เวลานานเกินไปที่จะแยกตัวออกจากกระบวนทัศน์นั้นในความคิดของฉัน มุมมองของฉันคือคุณควรเขียนเพื่อให้สามารถสร้าง UI ใหม่ทั้งหมดแล้วก็เชื่อมต่อกับตรรกะของโปรแกรมแบ็คเอนด์
แม้จะตกหลุมรัก Delphi ตั้งแต่ช่วงเวลาที่ฉันไม่ได้บ็อกซ์ V1 แต่ฉันก็เกลียดและเริ่มต้นด้วยการเริ่มต้น ... จบลงด้วยความหลงใหล {ฉันมีความอิจฉาริษยาอย่างแน่นอน} ด้วยเหตุนี้ฉันจึงพยายามหาวิธีที่จะทำให้รหัสของฉันดู neater มากซึ่งรวมถึงการไม่มีทุกจุดสิ้นสุดในบรรทัดแยกต่างหากอย่างที่คุณจะเห็น: D
วิธีการทั้งหมดที่ฉันเขียน (ตรงข้ามกับขั้นตอนตัวจัดการเหตุการณ์ที่สร้างขึ้น IDE ฯลฯ ) ถูกกำหนดเป็นฟังก์ชั่นที่มีค่าส่งคืนบูลีนเริ่มต้น
ฉันนำเสนอทั้งหมดนี้เป็นอาหารสำหรับความคิด ฉันไม่ได้คาดหวังว่าอุตสาหกรรมจะใช้กลยุทธ์การเข้ารหัสที่แปลกประหลาดของฉันอย่างกะทันหัน คุณอาจพบว่ามีแรงบันดาลใจเล็กน้อยในการทำสิ่งต่าง ๆ เล็กน้อย แต่ถึงวิธีการเขียนโค้ดที่คุณเขียนแบบดั้งเดิม และถ้าไม่อย่างน้อยคุณก็ได้รับการเตือนล่วงหน้า!
Minimalist Media Player ? คำถามที่ดีเมื่อพิจารณาว่ามีผู้เล่น Windows Media ที่ดีอีกกี่คนรวมถึง Potplayer ที่ชื่นชอบ (VLC ได้รับการแย่งชิง!) โครงการสัตว์เลี้ยงนี้เติบโตขึ้นจากข้อกำหนดเพียงครั้งเดียว: ฉันมี 100s ขนาดเล็กส่วนใหญ่ตลกคลิปวิดีโอที่ฉันสะสมมานานหลายปีดาวน์โหลดจากแพลตฟอร์มโซเชียลมีเดีย ฉันต้องการวิธีที่จะผ่านคอลเลกชันทั้งหมดของคลิปทั้งหมดของฉันและตัดสินใจว่าจะเก็บหรือลบแต่ละคลิป สิ่งนี้พิสูจน์แล้วว่าเป็นเรื่องยากมากโดยใช้เครื่องเล่นสื่อมาตรฐานเนื่องจากส่วนใหญ่ไม่ได้ให้ความสามารถในการลบวิดีโอที่กำลังเล่นอยู่ ฉันต้องเล่นคลิปปิดมันลบใน Explorer จากนั้นกลับไปที่เครื่องเล่นสื่อเพื่อดำเนินการต่อด้วยคลิปถัดไป ด้วย Minimalist Media Player ฉันสามารถผ่านคอลเลกชันของฉันได้อย่างรวดเร็วอ่านผ่านวิดีโอแต่ละรายการตัดสินใจว่าจะเก็บไว้หรือไม่จากนั้นไปยังคลิปถัดไป เมื่อมองผ่านรหัสและเห็นการดำเนินการบางอย่างที่เป็นไปได้โปรดจำไว้ว่าแอปพลิเคชันนี้เริ่มต้นชีวิตเพื่อให้คอลเลกชันทั้งหมดของคลิปวิดีโอได้รับการตรวจสอบอย่างรวดเร็วและเก็บหรือลบอย่างรวดเร็วโดยไม่ต้องออกจากแอพใหม่ซ้ำ ๆ
หากคุณพบว่า Minimalist Media Player มีประโยชน์และคุณมีคำแนะนำสำหรับการปรับปรุงฉันยินดีที่จะพิจารณาดำเนินการด้วยตัวเองหรือผ่านคำขอดึง ฉันจะขอบคุณมากถ้าคุณจะทำตามมารยาทในการเขียนโค้ดของฉันและมีคำสั่งกรณีมากกว่าถ้างบ; เป็นเรื่องง่ายที่จะนำมาใช้เมื่อคุณคุ้นเคยกับการใช้มันโดยเฉพาะ IFS
ในที่สุดฉันต้องการแทนที่ Windows Media Player เป็นตัวแสดงวิดีโอและทำให้ Minimalist Media Player เป็นส่วนหน้าสำหรับ Mplayer ด้วยความสามารถในการจัดการวิดีโอที่เหนือกว่าหรืออาจเป็น Microsoft Media Foundation / MFPack (ฉันขอขอบคุณคำแนะนำที่เป็นวิธีการที่ทันสมัยที่สุด) ตัวอย่างเช่น WMP ไม่ได้ทำเฟรมย้อนหลังอย่างถูกต้อง (มันกลับไป 1 วินาทีไม่ใช่ 1 เฟรม!) และฉันก็ต้องแสดงความคิดเห็นสิ่งอำนวยความสะดวกในการขัดวิดีโอ (ลากเมาส์ไปตามแถบความคืบหน้าเพื่อสแกนผ่านวิดีโออย่างรวดเร็ว หากคุณต้องการใช้ mplayer หรือ mmf/mfpack (แล้วแต่จำนวนใดจะให้ฟังก์ชั่นที่ร่ำรวยที่สุดในอนาคต) เพื่อแทนที่ WMP โปรดเป็นแขกของฉัน !!
แก้ไข: ขณะนี้ฉันกำลังทดสอบเบต้าการเขียนใหม่ของโครงการนี้โดยใช้ MPV! MinimalistMediaPlayerX จะถูกปล่อยลงสู่ป่าในเวลาไม่กี่สัปดาห์ คอยติดตาม
นี่เป็นครั้งแรกที่ฉันพยายามปล่อยโครงการซอร์สโค้ดเป็นโอเพ่นซอร์ส โปรดอ่อนโยน: P ถ้าเป็นไปด้วยดีฉันมีโครงการอื่น ๆ อีกมากมายที่ฉันอาจเต็มใจที่จะปล่อยลงสู่ป่า
ฉันรู้สึกขอบคุณนักพัฒนาทุกคนที่เป็นแรงบันดาลใจให้ฉันเริ่มปล่อยรหัสของฉันตลอดไป