LIBVLC+QT+Webkit开发应用

来源:互联网 发布:重庆手机数据恢复 编辑:程序博客网 时间:2024/05/17 04:41


需求概述:


1、左侧栏显示视频教程。

2、右侧栏显示课件内容。

3、视频播放过程,根据播放的当前内容,自动滚动课件内容。

4、可以浏览全部课件内容,双击课件内容,视频跳转为当前内容进行播放。


库版本:    Qt5.3.1

开发环境:VS2010

平台:        win7 x86


过程:


因为要视频模块通过vlc进行二次开发,所以首先要对VLC sdk 进行获取,在官网上下载的源码包,解压出问题(windows平台),没解决。


所以直接安装VLC视频播放软件获取到它的开发库和相关sdk文件,

安装目录下有libvlccore.dll、libvlc.dll文件,这两个文件可以利用来二次开发。

相关头文件,在安装目录下的一个sdk目录下有一个include目录,为头文件。

lib文件获取,这里需要注意,使用在安装目录下sdk目录下的lib在debug模式下没有问题。

但是release下执行出错,连main函数都进不去。


获取release版本的lib文件,可以通过软件pexports.exe对安装目录下的libvlccore.dll、libvlc.dll进行导出,导出的lib在release模式下

使用没有问题,debug,release可共用这两个dll。但是引入头文件的lib需要分开,debug下用安装好的vlc软件目录下提供的lib,Release时需要自己导出。

当然有心思可以自己在windows平台编译vlc获取,但是这相当麻烦,并且不推荐,官方推荐的是在linux下进行交叉编译生成dll给windows用。



vlc相关的底层库正确获取了,为了更加简便,还使用了一个libvlc-qt。

该项目在http://sourceforge.net/可以获取到,具体地址为:

http://sourceforge.net/projects/vlc-qt/files/VLC-Qt/0.9.0/

自己下载了源码用VS2010进行编译,编译release时需要引用上述不同的libvlc.lib和libvlccore文件。



使用libvlc-qt-0.9.0进行开发。

libvlc-qt-0.9.0简化了vlc在qt环境的开发。

使用时最好自己编译libvlc-qt-0.9.0。

编译release时,注意libvlc.lib需要自己从官方的dll中导出来再用,否则如果直接使用安装目录下sdk下的lib进行release编译时,将运行错误。

main都无法进入的问题。


很方便,程序运行效率也流畅,实现了以下功能:

vlc能播放视频了;

qwebkit也能加载html5,实现一些绚丽界面的显示了;

qt也能访问执行html的javascript了,控制界面的一些逻辑;

页面载入时javascript也能调用qt了,qt和javascript进行交互还是很方便的。



接下来就是qt发布程序的问题。

正确的方法应该是:

使用ProcExp.exe、depends.exe工具查看exe依赖的dll。

然后全部放入exe文件夹内,再发布,但是其实用这些工具查看dll依赖时有些还是查不出来,比如使用到的qwindowsd.dll就查不出来。发布许注意!


否则,发布时,运行就崩溃。

就是qwindowsd.dll该文件位置问题,

qt5下,该文件应该在platforms下,并且platforms与exe目录同一级目录,而不是platforms在plugins下

因为之前一直把platforms放在在plugins下,所以一直发布出错,貌似好多教程默认都是这么放的。


当然这些应该都是可以在程序中配置的,但是我只用默认的。


qwebkit附带的东西实在太多了,写一个小的应用,要带上很多东西,很大。

即使编译为release还是很大。


网上看到有把qwebkit精简了的,就是去掉qml,打印,等东西。就是自己去编译qt库,编译前配置那些编译。


目前,不打算裁剪qt的qwebkit库,还是准备尝试静态编译qt库吧。


静态编译完然后再压缩,应该是个不错的方案。







0 0
原创粉丝点击