公告:该项目现在完全由https://github.com/bazzacuda/minimalistmediaplayerx/构建为著名的MPV API LibMPV。 (版本3已发布!! )因此,它为您的音频和视频播放体验(以及图像!)提供了较高的控制权,包括适当的Zoom,Pan,Rotation,Rotation,Forther和向后和向后(!),字幕,亮度,亮度,对比度,伽玛和饱和度,伽马和饱和度,筛选和快速编辑,以及为世界媒体格式提供优异的支持。
除非我得到任何特定的修改请求(错误修复),否则最简约媒体播放器的当前版本(基于Microsoft更有限的Windows Media Player activeX Controth)可能是最后一个。再见,忠实的仆人!
一个简单但非常有效的媒体播放器围绕Windows Media Player ActiveX Control构建。
Minimalist Media Player provides both a minimalist/keyboard-operated user interface (so that on-screen controls don't detract from the video) and the controls with which to view the video in a minimalist window with the option to have no borders, window title bar/caption, progress bar, video timestamp, etc, and with the window resized to fit the video perfectly, eliminating ugly black borders/bands around the video, particularly above and below.即使在窗口模式下播放而不是全屏,这也提供了沉浸式的观看体验。
尽管有很多控制要记住,但我试图直观地使用每个字母字母。动作描述应有助于将动作与信件联系起来。
| 控制 | 行动 |
|---|---|
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和媒体文件时间戳(所有媒体窗口) |
Ctrl-C | 显示/隐藏所有屏幕上的控件,媒体文件时间戳和媒体元数据(所有媒体窗口) |
D和DEL | [D] Elete当前媒体文件(确认后) |
Ctrl-D and Ctrl-DEL | [D]当前媒体文件文件夹中的所有文件(确认后) |
E | [E] ARS-静音/取消静音声音 |
F | 显示/取消[f] ullscreen模式 |
G | [g]窗户尺寸 |
Ctrl-G | 减少,即un [g] reater,窗户大小 |
H | 将窗口[h]放置在屏幕中心的窗口[h] |
I | Zoom [I] n比视频高度和宽度的10% |
J | ad [j] Ust窗口的纵横比与视频的纵横比匹配 |
K | 将此媒体文件标记为[k] EEP |
L | re [l]从当前文件夹中删除支持的媒体文件列表 |
M | [m]轴突 /还原窗口 |
N | Mi [n]模仿Windows Taskbar的窗口 |
O | Zoom [O] UT占视频高度和宽度的10% |
P | 如果安装 |
Q | 在[q] ueue/playlist中播放以前的媒体文件 |
R | [r]启用当前媒体文件 |
S | re [s]从一开始就Tart Tart tart the当前媒体文件,又称t t(所有媒体窗口) |
T | [t]通过媒体文件AB第200,第100(默认值),其持续时间的第50、20或第10位(使用Shift-Alt,Alt,Shift,Shift,Caps Lock进行修改)(所有媒体窗口) |
Ctrl-T | [T] AB通过媒体文件回到其持续时间的第100个(默认值),第50、20或第10位(使用Alt,Shift,Caps Lock进行修改)(所有媒体窗口) |
TAB | TAB将媒体文件的持续时间转发1/200(仅选定的媒体窗口) |
Ctrl-TAB | 向后1/200媒体文件的持续时间(仅选定的媒体窗口) |
U | [u] nzoom,即将视频重新贴在窗口中 |
V | 最大化 /还原[v] iew,与[M]相同 |
W | [w] ATCH列表中的下一个视频(或播放下一个音频) |
X | e [x]它是应用程序 |
Y | 通过在各个阶段对媒体文件进行采样,将媒体文件删除 |
Z | 在播放列表中播放最后一个媒体文件(第一个播放) |
Up Arrow | 将体积增加1% |
Down Arrow | 将音量减少1% |
Ctrl-Up Arrow | 将播放速度提高10% |
Ctrl-Down Arrow | 将播放速度降低10% |
0 | 简要显示媒体字幕(所有媒体窗口) |
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 | 在4x3网格(所有媒体窗口)中,最多12个Minimalist Media Player的自动阵容最多可容纳12个实例 |
Ctrl-0 | 关闭Minimalist Media Player (所有媒体窗口)的所有运行实例 |
我没有简单地接受Microsoft的单词,即Windows Media Player ActiveX Control支持其已发布的媒体文件格式列表,而是测试了许多文件格式,而Minimalist Media Player明确支持以下格式和文件扩展:
.wmv .mp4 .avi .flv .mpg .mpeg .mkv .3gp .mov .m4v .vob .ts .webm .divx .m4a .mp3 .wav .aac .m2ts .flac .mts .rm .asf
当确认工作时,可以轻松添加更多格式和文件扩展名。 WMP在播放一些FLV文件时遇到问题,如果将文件重命名为另一种格式,例如MP4
为了使您能够打开项目并显示包含Windows Media Player ActiveX组件的主表单,从Rad Studio / Delphi的菜单中,您首先需要执行“组件 /导入组件... /导入ActiveX Control”,然后从列表中选择Windows Media Player;然后,Rad Studio将自动生成此单元,并将组件安装到ActiveX调色板上。
我不想尝试不同的方法来布局我的代码,并让它更容易阅读,并更容易被那些第一次看待它的人理解,并且在几个月后甚至几年后返回它时。
我将Delphi IDE与180个字符范围的代码编辑器一起使用。这使我感到震惊,我们似乎在编辑代码时似乎并不能够充分利用高分辨率的宽屏监视器(Delphi仍然在第56列上自动包装事件处理程序签名,而不管我如何定义了边距!),而且我们似乎都会超过80列,以超过80列,这是回到Fortran Coders和Punchered sepred sears和Punchered searsed searts and Punched searts and Punched searts !!! :D因此,首先,我充分利用编辑器的所有180列。
我不喜欢嵌套如果语句。我认为它们在修改/扩展时很丑陋,难以遵循,并且很容易出现人为错误。因此,我根本不使用IF语句,而是始终使用案例语句。我认为它们更加整洁,更优雅,遵循和修改要容易得多,并且远远超过了它们的等效物。毫无疑问,很多人会不同意。
我喜欢尝试将用户界面定义与一般程序逻辑分开的不同方法以及如何处理全应用变量。对于这个项目,这三个仍然位于main.pas中,但是在一个具有多个单元的更大的项目中,我将它们分开的方式可以被采用,将它们全部放在单独的单元中。我对Delphi的唯一批评一直可以追溯到V1,这是它(以及所有书籍)鼓励所有代码都包含在表格单元和活动处理程序程序中的方式。在我看来,我们花了很长时间才终于摆脱了这种范式。我的观点是,您应该写作,以便可以创建一个全新的UI,然后才能连接到后端程序逻辑。
尽管自从我没有盒装V1的那一刻起就爱上了Delphi,但我讨厌和讨厌开始...以激情结束{我绝对有卷曲的brace Envy}。因此,我尝试找到使我的代码看起来更加整洁的方法,其中包括在单独的行上没有各个端,如您所见:D
我编写的所有方法(与IDE创建的事件处理程序程序等)定义为具有默认布尔返回值的函数。
我只是作为思想的食物来介绍所有这些。我没想到该行业会突然采用我的奇异编码策略。但是,您可能会发现一些小小的灵感来做事与传统书面代码的方式有些不同。如果没有,至少您已经被预警了!
Minimalist Media Player ?考虑到有多少其他完美的Windows媒体播放器,包括我绝对喜欢的Potplayer(VLC已被篡夺!)。这个宠物项目源于一个单一的要求:我有100个小的,大多数有趣的视频剪辑,这些剪辑是从社交媒体平台下载的。我需要一种方法来快速浏览整个剪辑集,并决定是否保留或删除每个剪辑。事实证明,使用标准媒体播放器非常艰辛,因为其中大多数没有使您能够删除正在播放的视频。我必须播放剪辑,将其关闭,将其删除在Explorer中,然后返回媒体播放器继续下一个剪辑。有了Minimalist Media Player我能够很快地浏览我的收藏,浏览每个视频,决定是否保留它,然后继续进行下一个剪辑。查看代码并查看一些可能的操作时,请记住,该应用程序开始生活,可以快速检查和保存或删除整个视频片段,而无需重复离开并重新启动该应用程序。
如果您发现Minimalist Media Player有用,并且有改进的建议,我愿意考虑自己或通过拉动请求实施它们。如果您要遵循我的编码礼节,并且有案例语句,而不是语句,我将非常感激。当您习惯于仅在IF上使用它们时,它们真的很容易采用。
最终,我想替换Windows Media Player作为视频渲染器,并通过其出色的视频处理功能或Microsoft Media Foundation / MFPACK将Minimalist Media Player成为Mplayer的前端(我感谢一些建议是最新的方法)。例如,WMP确实无法正确地向后框架(它返回1秒,而不是1帧!),我还必须评论视频擦洗设施(沿进度栏拖动鼠标以快速通过视频扫描-WMP进入正确的泡菜!)。如果您想实现Mplayer或MMF/MFPACK(以未来提供最丰富的功能)来替换WMP,请成为我的客人!
编辑:我目前正在基于MPV对该项目进行beta测试! MinimalistMediaPlayerX将在几周内将其释放到野外。敬请关注。
这是我第一次尝试将源代码项目作为开源。请保持温柔:P如果顺利进行,我还有更多的项目,我可能愿意释放到野外。
我永远感谢所有启发我开始发布代码的开发人员。