需求概述:
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库吧。
静态编译完然后再压缩,应该是个不错的方案。