标签:
准备工作:
安装IDE环境:code::Blocks 13.12 下载地址:
具体安装过程参照:
下载并解压Vlc库:vlc-2.2.0 下载地址:
下载一段需要播放的视频。
开发步骤:
(1)创建一个控制台应用程序
(2)打开project视图中的main.cpp
将文件内容修改为,
#include <stdio.h>
#include <tchar.h>
#include <time.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* vlc_ins = NULL;
libvlc_media_player_t* vlc_player = NULL;
libvlc_media_t* vlc_media = NULL;
constchar * vlc_args[] =
{
"-I",
"dummy",
"--ignore-config",
"--extraintf=logger",
"--verbose=2",
};
//创建一个VLC实例
vlc_ins= libvlc_new(sizeof(vlc_args)/sizeof(vlc_args[0]), vlc_args);
if(vlc_ins!= NULL)
{
//创建一个VLC播放器
vlc_player= libvlc_media_player_new(vlc_ins);
if(vlc_player!= NULL)
{
//通过文件路径创建一个媒体实例,这里是我的测试文件
vlc_media = libvlc_media_new_path(vlc_ins,"E:\\relatedResource\\vr\\dome.mp4");//注意这里要修改为自己需要播放的视频资源路径
if(vlc_media!= NULL)
{
//解析媒体实例
libvlc_media_parse(vlc_media);
//获取媒体文件的播放长度, 返回 ms
libvlc_time_tduration = libvlc_media_get_duration(vlc_media);
//此处是获取媒体包含多个的视频和音频轨以及其他类型的轨道信息
libvlc_media_track_info_t*media_tracks = NULL;
inttrackCount = libvlc_media_get_tracks_info(vlc_media, &media_tracks);
//这里是释放内存,但我测试的时候会有问题,还没仔细研究是为何
//free(media_tracks); // crash?
//把打开的媒体文件设置给播放器
libvlc_media_player_set_media(vlc_player,vlc_media);
//因为是windows系统,所以需要设置一个HWND给播放器作为窗口,这里就直接使用桌面窗口,这里仅是测试
libvlc_media_player_set_hwnd(vlc_player,::GetDesktopWindow());
//开始播放视频
libvlc_media_player_play(vlc_player);
//这里仅是为了打印一些信息出来,20秒后退出
time_tlast_time = time(NULL);
while((time(NULL)< (last_time + 20)))
{
Sleep(10);
//获取当前播放位置
libvlc_time_tplay_time = libvlc_media_player_get_time(vlc_player);
printf("playingtime : %lld ms\r", (__int64)(play_time));
//获取媒体的状态
//libvlc_state_t media_state = libvlc_media_get_state(vlc_media);
//printf("\nmedia state : %d\n", (int)(media_state));
}
//停止
libvlc_media_player_stop(vlc_player);
//释放
libvlc_media_release(vlc_media);
}
//释放
libvlc_media_player_release(vlc_player);
}
//释放
libvlc_release(vlc_ins);
}
return0;
}
(3)点击工具栏中的编译按钮
下方的build messages窗口显示错误信息:
||=== Build: Debug in myVlc (compiler: GNUGCC Compiler) ===|
E:\codeBlockWorkspace\myVlc\main.cpp|6|fatalerror: vlc/vlc.h: No such file or directory|
||=== Build failed: 1 error(s), 0warning(s) (0 minute(s), 0 second(s)) ===|
(4)打开project build option窗口
在弹出的窗口中选择search directories选项卡,单击add按钮
添加如下路径:【具体视自己所下载的vlc版本及解压路径而定】
D:\vlc-2.2.0\sdk\include
D:\vlc-2.2.0\sdk\lib
单击ok按钮确定之后,再次编译,发现编译能通过,但是仍然有很多错误提示,
这是连接错误。
(5)再次打开project build option窗口,选择linker setttings选项卡
单击add按钮,添加D:\vlc-2.2.0\sdk\lib路径下的.lib文件,
单击ok确定之后,再次编译,发现刚刚的连接错误没有了,又出现了错误信息如下,
||=== Build: Debug in myVlc (compiler: GNUGCC Compiler) ===|
ld.exe||cannot find libvlc.lib|
ld.exe||cannot find libvlccore.lib|
||=== Build failed: 2 error(s), 0warning(s) (0 minute(s), 0 second(s)) ===|
(6)将vlc解压【安装】路径中的libvlc.dll、libvlc.lib、libvlccore.dll、libvlccore.lib及plugins文件夹都拷贝到工程目录下。
(7)再次编译,则不再报错。
(8)单击工具栏上的运行按钮
能正确播放视频。至此完成!
标签:
原文地址:http://blog.csdn.net/fan0920/article/details/51979732