1 个多月时间,用 C++ 撸了个跨平台桌面视频播放器,现发布 1.0 版本

2023-01-12 15:59:45 +08:00
 tsl0922

前情提要:尝试做了个 mpv 播放器的图形界面 - ImPlay

在那之后过了 1 个多月了,终于把功能完善的差不多、并且准备好构建叫不能,可以拿出来给大家试试了。

预编译版本下载地址: https://github.com/tsl0922/ImPlay/releases

Release 下有每个平台的安装方法。

功能特性

从 README 复制过来的,懒得再逐个翻译了。

界面截图

应上个帖子网友要求,加了圆角和阴影。

新手写了 1 个月的 C++ 感受:发现还是有点点按照 C 的风格来写代码。有标准库确实稍微方便了一点点,不过 C++ 的标准库也真的是一言难尽,比如 string 很多常用的方法都没有。(楼主有一定 C 语言基础(写过 ttyd),C++ 是现学现卖的)

2978 次点击
所在节点    分享创造
24 条回复
ipwx
2023-01-12 16:07:54 +08:00
C++ 标准库的很多问题,可以通过 boost 解决。

boost 大部分库是 header-only ,不需要在系统级别安装依赖,只要把源代码塞到你项目里面就行。

为了解决 boost 整个库过于庞大的问题,你可以使用 bcp 这个官方工具,从中裁剪你需要的子集出来。
ipwx
2023-01-12 16:10:54 +08:00
比如 string 的常用方法可以用 boost 的 string algo 子库。

https://www.boost.org/doc/libs/1_81_0/doc/html/string_algo/usage.html
ttwxdly
2023-01-12 16:22:16 +08:00
膜拜一下大佬。
ixinshang
2023-01-12 16:44:55 +08:00
看着挺简洁啊,想拿到看网上的 IPTV 。
xiaoz
2023-01-12 17:58:19 +08:00
楼主强啊👍🏻谁问支持注册协议不?就是第三方通过注册协议调用,比如 potplayer://
tsl0922
2023-01-12 18:03:08 +08:00
@xiaoz 还不支持,可以考虑添加,我有空研究下。
xiaoz
2023-01-12 18:17:43 +08:00
@tsl0922 #6,感谢,支持了会很方便的调用播放。
lw0717
2023-01-12 18:56:22 +08:00
star 一下
justin2018
2023-01-12 19:38:29 +08:00
膜拜一下大佬
yyt6801
2023-01-12 19:46:46 +08:00
看起来不错哈
lizhenda
2023-01-13 09:13:51 +08:00
有点厉害啊
Kimen
2023-01-13 14:02:37 +08:00
问一下,mpv 的 HDR 是需要自己实现的吗?
tsl0922
2023-01-16 11:52:11 +08:00
@Kimen 还没研究。看了下文档有不少参数可以配置,应该是 mpv 已经实现了的。
Ccf
2023-01-16 19:30:02 +08:00
一直在追版本,发现有的 iso 格式的原盘播不了,蓝光文件夹和蓝光在播放时有点类似 vlc 会把所有的文件逐个播放,因为没法显示菜单,这种情况下,如何选择主视频文件?
为何我在看直播的时候列表会出现乱码?
[URL=https://www.imagebam.com/view/MEI4X1P][IMG]https://thumbs4.imagebam.com/60/64/2f/MEI4X1P_t.png[/IMG][/URL]
能实现添加 smb 或者 webdav 格式的地址么?这样可以连 nas 了。
Ccf
2023-01-16 19:31:59 +08:00
补充下测试环境:windows ltsc 1809 ,windows server 2019
tsl0922
2023-01-16 20:32:01 +08:00
@Ccf iso 直接用 mpv 也播放不了吗?选择文件的问题,可以看 Chapter 列表,不过我试了下一些 iso 里的 Chapter 也没标题,只能显示时间区间。
直播乱码,可能是播放列表编码文件的问题,你可以试下用 mpv 会不会乱码,菜单里显示的列表也是 mpv 解析后拿过来的,或者把列表文件提供给我来测试一下。
tsl0922
2023-01-16 20:36:28 +08:00
smb 和 webdav 应该是支持的,只是没有浏览目录功能。你直接资源管理器里浏览文件,用播放器打开就可以了(或者直接拖到播放器窗口),我试了下 smb 没问题。

webdav 地址 mpv 还没有直接支持,但是可以把 webdav:// 替换为 http:// 来播放
https://github.com/mpv-player/mpv/pull/11081
drw
2023-01-17 09:36:40 +08:00
大佬不准备添加中文界面吗
Ccf
2023-01-17 14:43:01 +08:00
@tsl0922 我没有单独装 mpv 测试。
自己复制了 alist 的文件播放,implay 只显示了下标题就回到默认桌面了。
tsl0922
2023-01-17 16:31:56 +08:00
@drw 有计划,但是需要慢慢来。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX