首先介绍下版本吧
用的ubuntu
到Qt官网 http://qt-project.org/ 下载对应的安装包,安装好
vlc我直接在终端安装的 命令如下:sudo apt-get install vlc
播放器的代码用的是vlc自带的,建一个qt工程把下面两个文件复制过去
test2.pro文件
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TEMPLATE = app
TARGET = projectLoic
INCLUDEPATH += . vlc
QT += widgets
# Input
HEADERS +=
SOURCES += \
t.cpp
LIBS +=-lvlc
SOURCES +=
t.cpp
#include <vlc/vlc.h>
#include <QApplication>
#include <QDebug>
int main(int argc, char* argv[])
{
QApplication app(argc, 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_path (inst, "/home/liuqian/tmp/20131114171922-7132623.mp4");
if (m == 0)
{
qDebug() << "not possible to open file";
return 0;
}
// Create a media player playing environement
mp = libvlc_media_player_new_from_media (m);
libvlc_media_release(m);
// play the media_player
libvlc_media_player_play (mp);
return app.exec();
}
///这里补充一点,如果你下载的是vlc2.0以上的版本,在代码中不要出现libvlc_exception_t这个异常类相关成员的调用,因为2.0以上的已经移除来这个类,所以会一直提示找不到 libvlc_exception_t has not been declared;
还有一个实例也不错,下载地址如下:
https://codeload.github.com/lukasz357/QtGstMediaPlayer/zip/master
弄好这些就开始调试来,那么如果你装的是qt5就会出现问题拉
报错:
Error in `/home/tmp/build-MagicPlayer-Desktop_Qt_5_3_GCC_64bit-Debug/MagicPlayer': realloc(): invalid pointer: 0x00007f8d34c98d40 ***
我也很是折腾来一天,仔细查看来vlc的安装包,发现问题在于有一个vlc的插件位于
/usr/lib/vlc/plugins/gui/libqt4_plugin.so,也就是他只有qt4的,没有qt5的,我又百度来下,发现没有/libqt5_plugin.so,估计还没来得及补充吧官方,没办法,为拉让程序跑起来,我只能采取了一个比较野蛮的方式,人工删除那只坏了汤的老鼠
解决方法:
在终端输入 sudo rm /usr/lib/vlc/plugins/gui/libqt4_plugin.so
这样,折腾啦两天,终于把Qt5和vlc撮合在一起来
记录下来分享给和我一样独自摸索的人
明天就要开始弄ffmpeg啦,从源码入手,希望好运~~