用Eclipse搭建VLC SDK开发环境

最近研究FFmpeg,看到用FFmpeg写的VLC播放器很牛X,我打算学习一下,网上找了很多的资料发现都是在VS IDE基础上开发的,本人对VS IDE不感冒,因为一直从事java开发,对eclipse还是很有偏爱的,打算用eclipse来搭建C/C++开发环境。本人其实对C/C++其实也只懂一些皮毛。在搭建过程中遇到过很多的问题。为了让初学者在学习的过程中少走弯路,特此写一下本篇文章。

 
环境:

OS: Windows 7 32位旗舰版

IDE: Eclipse indigo

LIB: VLC2.1.0 SDK
 
1、下载eclipse
下载地址: http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2  下载对应操作系统版本即可,里面包含了CDT(C/C++ 开发工具)。解压即可。
2、安装 MinGW
下载地址:  http://sourceforge.net/projects/mingw/files/ (需要fanqiang) 下载后点击安装即可。因为sourceforge被qiang了,在安装的过程中出现N多的错误,这是需要用到代理,去网上随便找一个HTTP代理IP配置到IE的LAN Setting里即可。
安装:一路next即可,选择安装组件需选择g++ compiler.
配置环境变量:把 MinGW目录下的bin目录配置到环境Path环境环境变量中。
测试MinGW是否配置成功:Win+R弹出运行窗口,然后敲入“cmd”打开命令行窗口,敲入“gcc”测试即可。
3、创建C/C++工程
打开eclipse,new C project ,选择Hello World ANSI C Project, 右边选择MinGW GCC,如果Path中没配置MinGW则不会出现此选项。
Project type分为两种,“Executeble”和“Makefile project”,其中“Executeble”为Managed C Project,即自动编译的C工程;而“Makefile project”是通过写makefile来手动编译的C工程,新手建议使用自动编译的C工程。
①新建项目
 
② 点击完成。打开后默认是这个样子的:
③自动生成的代码如下:
代码如下:
/*
  ============================================================================
 Name        : Demo.c
 Author      :
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
  ============================================================================
 */
 
#include   <stdio.h>
#include   <stdlib.h>
 
int  main(  void ) {
        puts (  "!!!Hello World!!!" );  /* prints !!!Hello World!!! */
        return  EXIT_SUCCESS;
}
 
④如果直接点运行会报错:
 
⑤必须先构建build,再运行。点小锤子或在项目右键 build Project。如下图
⑥编译结果:
⑦然后在运行:
 
4、下载VLC 
安装vlc:正常的window程序安装。无需多说。
 
5、加入VLC库文件和头文件
① 加入头文件
项目右键 点 properties,展开C/C++ Build ,点击Settings:
选择GCC C Compiler下的Includes:
加入VLC的include path,这里需要加MinGW和vlc的include文件,点右边的添加按钮,把路径填入点ok即可
 
加入VLC的lib ,在Library search path中填入VLC sdk lib路径,在Libraries中加入lib文件名(不要.lib后缀):
SDKlib目录截图:
 
配置截图:
 
6、运行VLC官方教程代码
打开 LibVLC tutorial 找到Sample LibVLC Code部分,拷贝代码到Demo.c中。
如果你马上运行代码会出现如下错误:
解决此问题需要在头部加入如下代码:
#ifdef __unix__
# include  <unistd.h>
#elif  defined _WIN32
# include   <windows.h>
#define  sleep(x) Sleep(1000 * x)
#endif
 
 
完整代码如下
#include  <stdio.h>
#include  <stdlib.h>
#include  <vlc/vlc.h>
 
#ifdef  __unix__
# include  <unistd.h>
#elif  defined _WIN32
# include  <windows.h>
#define  sleep(x) Sleep(1000 * x)
#endif
 
  int  main ( int  argc,  char * argv[])
 {
      libvlc_instance_t  * inst;
      libvlc_media_player_t  *mp;
      libvlc_media_t  *m;
 
      /* Load the VLC engine */
     inst =  libvlc_new  (0, NULL);
 
      /* Create a new item */
      //m = libvlc_media_new_location (inst, "E:/test_video/jidu.mp4"); //network video file
     m =  libvlc_media_new_path  (inst,  "E:\\test_video\\jidu.mp4" );   //local video file
 
      /* Create a media player playing environement */
     mp =  libvlc_media_player_new_from_media  (m);
 
      /* No need to keep the media now */
      libvlc_media_release  (m);
 
  #if  0
      /* This is a non working code that show how to hooks into a window,
      * if we have a window around */
      libvlc_media_player_set_xwindow (mp, xid);
      /* or on windows */
      libvlc_media_player_set_hwnd (mp, hwnd);
      /* or on mac os */
      libvlc_media_player_set_nsobject (mp, view);
   #endif
 
      /* play the media_player */
      libvlc_media_player_play  (mp);
 
     sleep (20);  /* Let it play a bit */  //Sleep takes a time in milliseconds;sleep takes a time in seconds.
 
 
      /* Stop playing */
      libvlc_media_player_stop  (mp);
 
      /* Free the media_player */
      libvlc_media_player_release  (mp);
 
      libvlc_release  (inst);
 
      return  0;
 }
说明一下: libvlc_media_new_location是播放网络视频文件, libvlc_media_new_path  是播放本地视频文件。
sleep (20)是播放器20秒后自动关闭,Sleep 单位是毫秒
 
最后:
编译build project -->运行,出现如下截屏:
 
至此Eclipse搭建VLC SDK开发环境讲解完毕。
 
参考资料:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值