经过前面的介绍,想必大家对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. linux 配置sendmail支持php mail 函数

    参考自:http://blog.csdn.net/shiningstarpxx/article/details/41008325 http://blog.sina.com.cn/s/blog_65c8 ...

  2. 本地Sql Server数据库传到服务器数据库

    将网站项目上传到服务器时,会遇到本地数据库该如何上传的问题.下面在西部数码购买的虚拟主机的基础上,解决数据库上传问题.   1.在西部数码购买虚拟主机后,会赠送了一个数据库,该数据库就可以作为网站项目 ...

  3. Android中AES256加密的实现

    AES加密是我们在工作中常用到一种加密方式,并且在java中也已经实现好了其相应的接口. 但是Java自带的JDK默认最多实现128位及其以下的加密.如果使用java自带的api实现aes256将会报 ...

  4. keybd_event 被 SendInput 替代

    keybd_event   函数功能:该函数合成一次击键事件.系统可使用这种合成的击键事件来产生WM_KEYUP或WM_KEYDOWN消息,键盘驱动程序的中断处理程序调用keybd_event函数.在 ...

  5. EBS MOAC

    alter session set nls_language='SIMPLIFIED CHINESE';alter session set nls_language ='AMERICAN'; exec ...

  6. mysql yum安装

    # 下载yum源的rpm包wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm# 安装rpm包rpm - ...

  7. Java LinkedList工作原理及实现

    1. 概述 以双向链表实现.链表无容量限制,但双向链表本身使用了更多空间,也需要额外的链表指针操作. 按下标访问元素—get(i)/set(i,e) 要悲剧的遍历链表将指针移动到位(如果i>数组 ...

  8. SharedPreferences 原理 源码 进程间通信 MD

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

  9. [Functional Programming] From simple implementation to Currying to Partial Application

    Let's say we want to write a most simple implementation 'avg' function: const avg = list => { let ...

  10. How to measure IOPS for VMware

    http://blog.synology.com/blog/?p=2225 Executive SummaryThis article, intended towards IT Professiona ...