Qt+VLC简单的使用显示视频Demo
先看看效果:
vlc播放视频,要比QMediaPlayer实用的多,并且同时运行20个视频时不会出现卡顿。
这个Demo功能实现非常简单,简单的说一下vlc流程:
1、创建并初始化一个libvlc实例
LIBVLC_API libvlc_instance_t * libvlc_new( int argc , const char *const *argv );
2、根据给定的媒体对象创建一个播放器对象
LIBVLC_API libvlc_media_player_t * libvlc_media_player_new_from_media( libvlc_media_t *p_md );
3、解析媒体实例
LIBVLC_API void libvlc_media_parse( libvlc_media_t *p_md );
4、根据事件解析器分析媒体各种事件及处理
//从发送事件的媒体播放器对象那里获取一个事件管理器
① LIBVLC_API libvlc_event_manager_t * libvlc_media_player_event_manager ( libvlc_media_player_t *p_mi );
//事件通知注册器
② LIBVLC_API int libvlc_event_attach( libvlc_event_manager_t *p_event_manager, libvlc_event_type_t i_event_type, libvlc_callback_t f_callback, void *user_data );
5、设置给予媒体播放器媒体输出的win32/win64窗口句柄
LIBVLC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t *p_mi, void *drawable );
(注:用Qt的话,比如用QLabel,要用它的winID,并且强转成(void *)类型)
6、获取媒体的状态
LIBVLC_API libvlc_state_t libvlc_media_get_state(libvlc_media_t *p_md );
7、开始播放
LIBVLC_API int libvlc_media_player_play ( libvlc_media_player_t *p_mi );
8、检测媒体是否正在播放(注:这里的返回值可以强转成bool类型方便一点)
LIBVLC_API int libvlc_media_player_is_playing ( libvlc_media_player_t *p_mi );
9、正在播放的媒体暂停(暂停再点击播放可以继续)
LIBVLC_API void libvlc_media_player_set_pause ( libvlc_media_player_t *mp, int do_pause );
10、正在播放的媒体停止(停止再点击播放则重头播放)
LIBVLC_API void libvlc_media_player_stop ( libvlc_media_player_t *p_mi );
11、释放所有vlc对象(注:在释放libvlc_media_player_t之前,记得先将视频停止,避免的不必要麻烦)
LIBVLC_API void libvlc_media_player_release( libvlc_media_player_t *p_mi );//释放libvlc_media_player_t
LIBVLC_API void libvlc_media_release( libvlc_media_t *p_md );//释放libvlc_media_t。
LIBVLC_API void libvlc_release( libvlc_instance_t *p_instance );//释放libvlc_instance_t。
示例代码已经上传到csdn:
http://download.csdn.net/detail/u014597198/9850645
源码已经上传到Github:https://github.com/ShaShiDiZhuanLan/Demo_VLC_Qt
Qt+VLC简单的使用显示视频Demo相关推荐
- Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等
Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等 目录 Unity 基础 之 在 UGUI 上简单实现VideoPl ...
- Qt+VLC播放多个视频的Demo
这个Demo做的是同时播放9个相同的视频: 详细代码可以参考我写的这篇:Qt+VLC简单的使用显示视频Demo 目前做的这个小Demo代码微微做了一点小优化,单独封装的类: #ifndef SVLCC ...
- Qt多路视频监控软件(Qt+VLC支持本地视频/RTSP流/RTMP流)
Qt多路视频监控软件(Qt+VLC支持本地视频/RTSP流/RTMP流) 功能: 支持同时播放多路视频源: 支持播放本地视频,包括MP4.mkv.flv等视频格式: 支持播放RTSP/RTMP视频流: ...
- Qt vlc视频开发libvlc_new返回空的问题
转自:http://www.cppblog.com/seahouse/archive/2013/09/26/196519.html Qt vlc视频开发libvlc_new返回空的问题 Windows ...
- QT显示视频-QVideoWidget
QT显示视频QVideoWidget Header: #include <QVideoWidget> qmake: QT += multimediawidgets Inherits: QW ...
- Qt移植正点原子ZYNQ7010-Arm平台显示图片demo
移植Qt到ZYNQ7010-Arm平台 参考[正点原子]ZYNQ Qt & OpenCV开发环境搭建_V1.1.pdf 但是我本人按照文档那么配置并不能成功编译,吃了很多苦头,踩了很多坑 但是 ...
- 简单制作短视频Demo
简单制作短视频Demo 准备材料并配置项目工程: 1.去下载七牛云播放器SDK 2.然后把pldroid-player-2.1.6.jar包拷贝到你项目lib文件里,详情如下图所示: 3.把整个jni ...
- c++ vlc读取摄像头_Qt音视频开发1-vlc解码播放
## 一.前言 最开始接触视频监控这块的时候,用的就是vlc作为解码的内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用q ...
- QT实现简单的上位机软件
最近项目要求写上位机软件,需要实现界面功能和串口读写.界面方面用过MFC(早忘记了),网上查阅资料后发现QT在5.1版本后有自带的串口模块,而且用QT实现简单界面功能很容易上手(也就期末设计随便玩过几 ...
最新文章
- swift笔记——环境搭建及Hello,Swift!
- Python爬一下抖音上小姐姐的视频~
- 中国机器人产业发展报告(2018)正式发布!
- Java黑皮书课后题第5章:*5.15(显示ASCII码字符表)编写一个程序,打印ASCII字符表从‘!‘到‘~‘的字符。每行打印10个字符。ASCII码表如附录B所示。数字之间用一个空格字符隔开
- websockets_使用Java WebSockets,JSR 356和JSON映射到POJO的
- 纪念品分组java_纪念品分组 ——易懂、简介、技巧(Java代码)
- WordPress 插件开发实例 – 详细注释的 Widget 开发例子
- Windows绘图中的GDI映射模式
- (5)通过输入参数(测量数据)构建二维体模型(01)
- 初中参观机器人博物馆的作文_参观足球机器人实验室600字作文
- 鼠标抖动问题(macbook下安装的win7系统)
- 重识JavaScript(一)
- VOSviewer进行中文和英文文献分析
- DLL文件是什么?有几种调用方式?
- 树形DP入门(二叉苹果树+没有上司的舞会)
- 【软件测试】测试用例设计
- html css 中浮动影响与浮动问题的解决
- 记账工具分享,教你如何连续添加新收支
- 微分方程(有阻尼的简谐运动)
- 人工智能时代下的呼叫中心系统有哪些优势?
热门文章
- 解决安装 apk安装不了的问题
- 微软推出Azure量子资源估算器,加速量子算法研发
- 年末贺岁新路启程~机器人工程专业工作总结和展望
- Word处理控件Aspose.Words功能演示:使用 Java 比较 MS Word 文档
- 熊掌号php自动提交链接示例,WordPress熊掌号API自动提交接口
- 仙剑缘_仙剑缘下载_仙剑缘手游安卓版下载v1.2.5-游侠手游
- 没有升级鸿蒙系统怎么办,华为一些手机,可升级为鸿蒙系统,来看看有没有你的机型!...
- 矩阵论:子空间的交与和
- Repairing a Road NBUT - 1465
- CSDN日报20170401 ——《如果你还是“程序员”,我劝你别创业!》