注册 登录
编程论坛 C# 论坛

VLC控件中,无视频长度属性?

ljtlily 发布于 2022-04-04 02:22, 1305 次点击
通过NuGet添加的vlc(3.1版本),添加了vlc控件后,查遍了(也许有遗漏?反复查过几遍了)各类属性,也未能找到视频长度的属性,哪位知道?谢谢!

当然,我也可以通过调用户FFMPEG等方法获取视频长度,但,VLC也是相当专业的啊,为何就没有对应属性提供呢?想不通
3 回复
#2
qq28895779662022-04-04 08:25
有的,在https://bbs.bccn.net/thread-505696-1-1.html里面查看Media文件夹全源码封装好的,DWallpaper_MediaPlay.cs里面用UISync跨线程显示。
要是整不明白,在github上有更简单明了的代码。

如果只是使用,就用上面现成的就可以了,直接用,全源码没dll多好,彻底搞明白没啥用。
这个vlc代码是找到的最合适的代码,其他的要么功能不全要么有各种问题,建议不费神了,很多我都试过了。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2022-4-4 08:32编辑过]

#3
ljtlily2022-04-04 22:13
推荐的贴子(https://bbs.bccn.net/thread-505696-1-1.html)昨晚就拜读过了,源代码也下载了,运行也毫无问题,尤其是,无论在调试环境下还是运行环境下,拖动进度条时,只出现小小的卡顿而已,实在是比我最喜爱的播放器Potplayer反应还要快,更比微软的MediaPlayer还要快(对同一硬盘下的同一文件进行的测试)。

帖子是好帖子,奈何问题出在我这边:
一是,本人目前在这方面的编程语言主要是使用,C#只能大致看看代码,细究的话,则一头雾水;之所以使用,沿袭于早期使用VB编程。
二是,本人编程水平有限,所有的能力与技巧,均是自学。学习编程,早期是出于工作需要,后来更多的则是出于兴趣与爱好,更是对“会编程”这一能力的不舍,始终没有放弃。但由于从没有经过“科班”系统地学习,所以可以说,我的水平仅限于会编一点而已,至于会到什么程度,本人认为也就是一般般吧,遇到高手,更是不值一提。

具体到本贴所提到的Duration问题,我正在做一个视频压缩的程序(编写的),压缩是通过调用FFMPEG来实现的(通过FFMPEG,也是能够获取视频时长的,丝毫没问题)。最近在该程序中,新增了一个掐头去尾的功能,即,比如下载的电视剧,每一集都有片头片尾,生成的文件可以有选择地去掉这一部分,这样,最终的文件大小会平均缩短10+%。这个功能实现起来是没有任何问题的,也已经实现了。为了实现这个功能,就需要提供片头长度和片尾长度这两个参数,目前,我是通过播放器(Potplayer)播放时,获取这两个数据的,这样的操作,我觉得有些个麻烦,不如把播放器直接嵌入到程序里,在程序界面内,通过拖拉进度条,即可获取片头及片尾的长度,这样来得更简洁些。由此,就出现了本贴提到的如何获取Duration这一问题了。

目前我的大概思路是:学习C#,把基本的功能(播放/暂停/当前位置/剩余时长)等这几个关键性功能和属性封装到一个类中,生成的DLL文件,在中进行调用,以我的感觉,播放时响应的速度应该会令人相当满意的。至于全面学习C#,还是有些打怵,先放一放,更何况完善的这部分功能后,我还要继续研究微信小程序,C#只能等以后有时间了再学习了

深深地感谢版主的指点!谢谢!

由于水平所限,估计我的问题不会很顺利地解决,也许还会有麻烦版主的时候,到时还请不吝赐教。当然,我会努力,尽量自己完成!

再次感谢!
#4
jlzw20142023-08-15 10:55
vlc还是不错的,有官方有开发文档的http://staff.ustc.
1