昨天的教程里写着预计MFC播放器会隔得久一点,但是今晚仔细看了下VLC的常用代码,发现VLC封装得真好,和ffmpeg简直就是天上地下的区别,所以呢,很快就将VLC的常用功能都加上啦,基本上都是一行代码解决,再次大喊一声:这酸爽~~~ 简直不敢相信!!!
所以今晚就已经完成了基于VLC的MFC播放器啦,想想当年用那么多时间去折腾ffmpeg,说多了都是泪啊~~~
效果如图:
实现了常用的功能,也就是那一排按钮的功能,由于前面的教程已经给出了VLC的示例,所以本节直接给出了所有的VLC代码,每个函数基本都是一两行,请自行阅读。为了让代码更简洁,很多地方没有加安全验证,所以播放器的使用请按下面步骤进行:
1、拖拽文件到窗口(这时右边的播放列表会自动显示)。
2、双击播放列表即可播放文件(没有过滤文件类型,所以请拖入有效文件)。
3、之后可以随便点击那一排按钮(如快进、快退等等)。
本节教程实现的功能:
1、MFC界面,就是一排按钮加几个控件,没什么好说的啦。
2、VLC封装,就是那一排按钮的功能,都在CAVPlayer里,非常简洁,也没什么好说的啦。
3、进度条的更新,这个需要说一下。本来Alberl想用定时器来更新进度(分成100份),不过发现VLC竟然提供了事件通知,简直人性化到极点啊啊啊~~~ 所以Alberl就直接用了VLC的事件通知,基本上是解析一帧(或者一小段?)通知一次,并且暂停时不会通知,所以比定时器好了N倍。可以发现OnPosChanged更新进度时并没有用到VLC的通知事件传过来的参数,这里Alberl只是给出一个示范,让大家知道它的用法,之后更新播放时间等各种状态时可能会用到,所以就先写出来了。
既然VLC的常用功能都实现了,MFC界面也实现了,现在这个版本已经可以说主体功能都OK了,如果不需要美化界面的话,那剩下的工作仅仅是加上参数判断等安全验证,以及细节的一些功能了。
虽然很快就可以做为一个实用的播放器了,但毕竟现在的软件界面这么美观,不美化一下实在拿不出手,所以我们后面将会美化界面,也就是所谓的仿迅雷看看播放器。
从动手写代码到完成一个实用的播放器,仅用了两个晚上,真是太出乎意料了,Alberl以为linux下的开源库大部分都像ffmpeg那样,不搞死你不叫开源库呢~O(∩_∩)O~ 这次VLC的开发真的让Alberl对linux下发起的开源库刮目相看,记得VLC官网好像说1.1之前没有SDK,现在2.0版本不仅提供了SDK,还提供了编译好的dll和lib,还有完整简洁的Demo,真是越来越向微软看齐,越来越照顾菜鸟了哈,爱死VLC啦~~~
好啦,其实这个播放器没什么技术含量,如果这样就算完了,Alberl肯定会被骂死的,站在巨人的肩膀上当然很容易搞出各种东东啦。还记得上一个系列的教程最后说什么了吗?
1、看反响。 Alberl第一次写那么详细的教程,当然希望小伙伴们支持啦,现在已经9天了,小伙伴们很给面子,而且****斑竹更给面子,即使教程写在博客园,也被推荐到论坛首页啦,非常感谢****的斑竹大大~~~
2、反响不错就继续下一个系列的教程,也就是本系列的仿迅雷播放器啦。
而仿迅雷播放器的重点在什么呢? 从前面的分析可以看出,播放核心早就很完善啦,我们要做的仅仅是换个界面而已,Alberl也可以说“自主研发”了一个播放器哦o(╯□╰)o 埋了这么大的伏笔,就是为了介绍界面,可谓用心良苦啊~~~
嗯,明天将会开始介绍界面美化,继续关注哦~O(∩_∩)O~