代码下载: http://download.csdn.net/detail/qq316293804/6409417

昨天的教程里写着预计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. 基于python的音频播放器_基于python实现音乐播放器代码实例

    基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...

  4. android服务绑定音乐播放器,Android基于Service的音乐播放器

    本文开发一个基于Service的音乐播放器,音乐由后台运行的Service负责播放,当后台的播放状态发生变化时,程序将会通过发送广播通知前台Activity更新界面:当点击Activity的界面按钮时 ...

  5. python装饰器类-基于类的python装饰器

    python装饰器函数其实是这样一个接口约束,它必须接受一个callable对象作为参数,然后返回一个callable对象.在Python中一般callable对象都是函数,但也有例外.只要某个对象重 ...

  6. html抢答器代码,基于FPGA的四路抢答器的Verilog HDL代码.doc

    基于FPGA的四路抢答器的Verilog HDL代码.doc module qiangda4(clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,input ...

  7. 基于VLC封装的播放器VlcPlayer,可播放本地及网络视频,支持视频录制。

    VlcPlayer.h文件 #ifndef VlcPlayer_H #define VlcPlayer_H #ifdef _WIN32 #include <basetsd.h> typed ...

  8. android在线音乐播放器教程,android实现简单音乐播放器

    本文实例为大家分享了android音乐播放器的具体代码,供大家参考,具体内容如下 话不多说先上效果 前言 写这个音乐播放器实在是迫不得已.因为我们Andoird课程要求写一个音乐播放器.所以就有了此项 ...

  9. 基于VLC的本地视频播放器

    这两天利用Vlc.DotNet.Forms做了一个WinForm版本的本地视频文件播放器,可以实现文件播放.暂停.进度条拖拽.截图功能,在这里做一个简单的记录. 使用工具:VS2019 , VLC 3 ...

最新文章

  1. java多线程 sleep()和wait()的区别
  2. input[type=file] 异步上传文件
  3. Flask框架(flask中的蓝图Blueprint)
  4. OpenCV检测面部特征点的实例(附完整代码)
  5. UE4 使用VaRest的最佳实践
  6. QTP 11 补丁大全
  7. 神奇却又随处可见的斐波那契曲线...
  8. android的ListView做表格添加圆角边框
  9. keras + tensorflow —— 训练参数数目的计算
  10. 如何在jsp中写一个弹窗
  11. (转)Android屏幕适配全攻略
  12. 万众瞩目的BAISS公链将如何彻底改变区块链现状?
  13. C语言实现动态数组大小
  14. [渝粤教育] 昆明理工大学 单片机原理及接口技术(宋庆和) 参考 资料
  15. M1忘记mysql密码
  16. winForm欢迎界面
  17. usbserial驱动 带感叹号_STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法!...
  18. Java学习:MyEclipse下载以及安装步骤,详细贴图每一个步骤,包教包会
  19. uin-app 使用阿里云iconfont图标
  20. 图像超分辨率重建学习记录(二)----插值法

热门文章

  1. 【独立站运营】在线聊天机器人为何能成为电商行业的大趋势?
  2. 微信小程序出现报错:Uncaught ReferenceError: __g is not defined
  3. for..in和for ..of的用法
  4. 华为完成首个5G测试;央行搭建区块链平台;苹果将于今夜凌晨举行发布会;蔚来汽车明日在美上市; | 雷锋网9月12日消息...
  5. dnf服务器未响应怎么解决方法,win7系统dnf经常未响应的解决方法
  6. Python操作word基础
  7. 微擎 公众号分享朋友圈不显示缩略图
  8. 以太网实习_计算机网络实习心得体会
  9. Android做3D旋转动画,Android编程实现3D旋转效果实例
  10. 数据库 三级模式 两层映像