经过前面的介绍,想必大家对VLC和ffmpeg都有一定印象了,还记得学习ffmpeg多么蛋疼吗?那么VLC会不会也这么蛋疼呢?

    那么我们来看一段官方的Demo,Alberl精简了Demo,只留下了主要代码:
#include <stdio.h>
#include <windows.h> #include "vlc/vlc.h"
#pragma comment(lib, "libvlc.lib")
#pragma comment(lib, "libvlccore.lib") int main(int argc, char* argv[])
{
libvlc_instance_t * inst;
libvlc_media_player_t *mp;
libvlc_media_t *m; inst = libvlc_new (, NULL); /* Load the VLC engine */
m = libvlc_media_new_path (inst, "D:\\music\\amani.wma"); // 必须为英文路径
mp = libvlc_media_player_new_from_media (m); /* Create a media player playing environement */
libvlc_media_release (m); /* No need to keep the media now */ // 播放文件
libvlc_media_player_play (mp); /* play the media_player */
Sleep ( * ); /* Let it play a bit */ libvlc_media_player_stop (mp); /* Stop playing */
libvlc_media_player_release (mp); /* Free the media_player */
libvlc_release (inst);
return ;
}

十多行代码就可做成播放器啦?

    必须的!
    现在知道ffmpeg多么蛋疼,VLC多么人性化了吧,大喊一声:这酸爽~~~ 简直不敢相信!!!
 
    请先下载项目,戳我下载,把代码中的音乐路径换成您本地的音乐路径(必须为英文路径), 按下F5,就可以听到音乐啦(由于VLC插件较多,所以F5启动调试时,需要等一段时间才能听到音乐)
    如果要看视频该怎么办?
    把音乐路径换成视频路径就行啦,只要是多媒体文件,把路径填上去就可以啦^_^
    什么?没看错吧?没看错,不要1000行代码,也不要100行代码,只要10行代码!  10行代码,万能播放器抱回家!
效果如图:
 
    下面开始进行技术分析:
    由于VLC做了非常多的处理,并且封装得很好,所以我们可以非常快速的开发播放器。
1、SDK下载,去官方网站下载一个VLC安装包(Alberl下载的是目前最新的版本,2.1.0),安装后即可在安装目录找到SDK,如图:
 
其中libvlc.dll和libvlccore.dll就是我们要的dll,而sdk文件夹下有lib文件和头文件,如图:
其中lib文件夹只需要两个lib文件即可。
 
将这些文件拷贝到相应的目录即可,文件具体位置请参考上面给出的Demo项目。
 
2、其中官方的Demo里为#include <vlc/vlc.h>,而Alberl的Demo里为#include "vlc/vlc.h",这是为了让新手不再去配置环境,所以修改了相应的代码。
3、在vlc目录下添加了一个stdint.h文件,这是为了能够在VS2010以下的环境使用。
 
就这么简短的三个步骤,加上10几行代码就可以做出一个万能播放器,是不是很爽呢~O(∩_∩)O~
 
 

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

  1. 仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)

        代码下载:http://download.csdn.net/detail/qq316293804/6409417   昨天的教程里写着预计MFC播放器会隔得久一点,但是今晚仔细看了下VLC的常 ...

  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. oracle 语句 笔记

    1.查询某个表有多少列. select column_name from user_tab_columns where table_name = 'DQ_S1'; 列出所有的字段名. 2.查询昨天一天 ...

  2. C++泛型编程(2)--通过排序和查找元素理解迭代器

    许多C++开源库(stl,opencv,ros和blas等)都使用了大量的泛型编程的思想,如果不理解这些思想,将很难看懂代码,而<泛型编程与STL>一书对理解泛型编程思想非常的有帮助,这里 ...

  3. poj很好很有层次感(转)

    OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 30 ...

  4. C宏替换优先级

    宏替换仅仅是简单的替换,它不会影响运算符优先级的,比如: #define DOUBLE(x) x+x int i = DOUBLE(5)*5; printf("%d", i); 相 ...

  5. springboot之启动原理解析及源码阅读

    前言 SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面 ...

  6. Github如何回退/回滚到某个版本

    当然你可以直接在命令行使用 git reset --hard <commit ID号> 或者 git reset --hard HEAD^来进行回退

  7. 【React】入门实例

    React 可以灵活的应用在各种各样的项目中.你可以用它来创建新的应用程序,你也可以逐步引用而不改变现有的代码库. React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaS ...

  8. 基础知识:什么是ASP.NET Razor页面?

    Razor页面与ASP.NET MVC开发使用的视图组件非常相似,它们具有所有相同的语法和功能. 最关键的区别是模型和控制器代码也包含在Razor页面中.它更像是一个MVVM(Model-View-V ...

  9. 鼠标滑过table时修改表格行的背景颜色

    方法一: #customers tr:hover { background-color: #f00; } 方法二: <tr onmouseover="style.backgroundC ...

  10. Eureka服务注册中心相关错误com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect

    启动项目报错如下 原因: 在默认设置下,Eureka服务注册中心也会将自己作为客户端来尝试注册它自己,所以会出现 com.sun.jersey.api.client.ClientHandlerExce ...