昨天的教程里写着预计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天了,小伙伴们很给面子,而且csdn斑竹更给面子,即使教程写在博客园,也被推荐到论坛首页啦,非常感谢csdn的斑竹大大~~~
2、反响不错就继续下一个系列的教程,也就是本系列的仿迅雷播放器啦。
    而仿迅雷播放器的重点在什么呢?  从前面的分析可以看出,播放核心早就很完善啦,我们要做的仅仅是换个界面而已,Alberl也可以说“自主研发”了一个播放器哦o(╯□╰)o   埋了这么大的伏笔,就是为了介绍界面,可谓用心良苦啊~~~
    嗯,明天将会开始介绍界面美化,继续关注哦~O(∩_∩)O~
   

仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)的更多相关文章

  1. 仿迅雷播放器教程 -- 基于VLC的C++播放器 (4)

    经过前面的介绍,想必大家对VLC和ffmpeg都有一定印象了,还记得学习ffmpeg多么蛋疼吗?那么VLC会不会也这么蛋疼呢?     那么我们来看一段官方的Demo,Alberl精简了Demo,只留 ...

  2. 仿迅雷播放器教程 -- 基于ffmpeg的C++播放器 (1)

    2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最后说会开源一个播放器,没想到快两年了,才 ...

  3. 用C/C++开发基于VLC SDK的视频播放器

    在windows系统如果开发万能播放器,一般都是基本DirectShow来开发,开发也很简单,但缺点也很多,一个文件格式是否能够播放完全取决于你 是否安装了正确的解析器和解码器,即使现在有了万能解器安 ...

  4. 仿迅雷播放器教程 -- 封装VLC (5)

        虽然上个教程中10多行代码便做出了一个播放器,但如果加上快进快退等功能的话,代码都会挤在一团,阅读性很差,所以这个版本将对VLC进行封装,由于第一个教程已经进行了ffmpeg的封装,所以这里将 ...

  5. (转)薛飞 基于VLC的Unity视频播放器(二)

    转自:http://www.manew.com/thread-144229-1-1.html 留个记录.

  6. 基于VLC的播放器开发

    VLC的C++封装 因为工作需要,研究了一段时间的播放器开发,如果从头开始做,可以学习下FFmpeg(http://www.ffmpeg.org/),很多播放器都是基于FFmpeg开发的,但是这样工作 ...

  7. 基于VLC的视频播放器(转载)

    最近在研究视频播放的功能,之前是使用VideoView.在网上看了一下,感觉不是很好,支持的格式比较少,现在网络视频的格式各种各样,感觉用VideoView播放起来局限性很大. 找到了一个比较合适的播 ...

  8. 基于VLC的视频播放器

    原文:基于VLC的视频播放器 最近在研究视频播放的功能,之前是使用VideoView.在网上看了一下,感觉不是很好,支持的格式比较少,现在网络视频的格式各种各样,感觉用VideoView播放起来局限性 ...

  9. 仿迅雷播放器教程 -- C++ 100款开源界面库 (10)

      (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系 ...

随机推荐

  1. Java容器:HashTable, synchronizedMap与ConcurrentHashMap

    首先需要明确的是,不管使用那种Map,都不能保证公共混合调用的线程安全,只能保证单条操作的线程安全,在这一点上各Map不存在优劣. 前文中简单说过HashTable和synchronizedMap,其 ...

  2. AngularJS中巧用ngModel的$asyncValidators属性写一个验证唯一性的Direcitve

    有这样的一个需求:添加用户的时候,根据主键判断当前添加用户的email是否已经被使用. 为此,我们需要把主键和email来传递给远程的一个API,让API返回结果,告之当前email是否被使用过. 写 ...

  3. Android 编程下 WebView 加载一个网页如何得到网页的 Cookie 值

    http://www.cnblogs.com/sunzn/archive/2013/04/03/2998113.html mWebView.setWebViewClient(new MyWebView ...

  4. (素材源代码)猫猫学IOS(四)UI之半小时搞定Tom猫

    下载地址:http://download.csdn.net/detail/u013357243/8514915 以下是执行图片展示 制作思路以及代码解析 猫猫学IOS(四)UI之半小时搞定Tom猫这里 ...

  5. windows 2003 iis 360防黑加固后不能使用

    最近在使用360的防黑加固加固2003系统,发现IIS居然不能够使用了,报401.1错误,查找解决方案如下: 1.我的电脑-〉属性-〉管理-〉本地用户和组,查看IUSER用户是否开启,如果未开启开启后 ...

  6. 最小生成树 Prim Kruskal

    layout: post title: 最小生成树 Prim Kruskal date: 2017-04-29 tag: 数据结构和算法 --- 目录 TOC {:toc} 最小生成树Minimum ...

  7. Nginx反向代理WebSocket

    http { upstream websocket { server 192.168.1.1:8010; } server { listen 8020; location / { proxy_pass ...

  8. Mac下打开多个eclipse

    命令行执行: open -n /Eclipse所在路径/Eclipse.app  

  9. android makefile文件批量拷贝文件的方法

    该方法是shell 和makefile组合使用 wallpapers := $(shell ls packages/apps/hyst_apps/NewBingoLauncher_C/default_ ...

  10. 基于CentOS搭建VNC远程桌面服务

    系统要求:CentOS 7.2 64 位操作系统 安装.启动 VNC VNC 远程桌面原理 名词解释: Xorg:在 Linux 用户中非常流行,已经成为图形用户程序的必备条件,所以大部分发行版都提供 ...