昨天的教程里写着预计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. AppleScript脚本学习记录《一》

    tell命令块 tell application "Finder" display dialog "Hello World" end tell 声明变量 set ...

  2. db2 OLAP函数使用

    说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...

  3. 关于Mysql安装启动的若干问题解决

    Mysql由于其免费,高效的特点一直是大学,培训班的主力数据库管理软件.但是对于初学者而言可能没有那么友好,一是没有windows软件通用的那套可视化操作,基本上初期在不搭配navicat的状态下只能 ...

  4. C语——宏小结

    c语言关于宏的使用十分频繁.但是宏的使用有利也有弊,与此同时,它还是一个特别容易搞错的地方.正是基于此,它常常成为一些面试会侧重考察的地方. 所谓宏就是 #define 机制包括的一个规定,即允许把参 ...

  5. JSON Web Token(JWT)机制

    JSON Web Token(JWT)机制  JWT是一种紧凑且自包含的,用于在多方传递JSON对象的技术.传递的数据可以使用数字签名增加其安全行.可以使用HMAC加密算法或RSA公钥/私钥加密方式. ...

  6. fixed、absolute

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name= ...

  7. VS2008中捕获内存泄露(转)

    内存泄露十分讨厌,捕获内存泄露更加令人厌烦…… 其实,VS本身就有内存泄露的检测机制.只需做以下操作即可开启.(同时必须在debug模式 下运行程序并且以 正常流程退出 ) // 在入口函数cpp中添 ...

  8. PKCS 15 个标准

    PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准. 可以到官网上看看 What i ...

  9. Android 面试题 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. vmware虚拟机环境下配置centos为静态IP的步骤

    一.修改centos配置文件 配置文件位于/etc/sysconfig/network-scripts/ifcfg-eth0 修改的内容为: ONBOOT=yes BOOTPROTO=static I ...