【发布时间】:2019-04-21 13:43:53
【问题描述】:
我正在开展一个项目,该项目涉及接收、显示和转播多个本地网络视频流。 LibVLC 似乎是要走的路,我想在 Qt Creator/C++/OSX 10.12.1 中使用它,而且我还需要在我安装了 Qt 的一些 Windows 10 机器上编译该项目。
我通过安装来自 projects.tano.si/vlc-qt 的官方 QT-LibVLC 包装器成功测试了一些功能。不幸的是,包装器缺少许多对我的项目至关重要的 LibVLC 方法,因此我决定安装完整的 LibVLC。
现在我一直在思考如何使 LibVLC 工作。 我在https://wiki.videolan.org/OSXCompile/#Apple_Software 遵循了所有方向 用于安装和库构建,一切都很顺利。
然后我在 QT 中开始了一个新项目,尝试添加 INCLUDEPATH += 。 Qt 中.pro 文件的 vlc 和 LIBS +=-lvlc 路径,但它不起作用。此外,将路径添加到 VLC 构建文件夹的“框架”文件夹也不起作用。
有谁知道魔术是怎么回事? 对不起,我知道我有点天真,但就是这样...... 提前感谢您的任何回答!
更新:
感谢 eyllanesc 的建议,此结构现在适用于编译器:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = testVLC
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
player.cpp \
main.cpp
HEADERS += \
player.h
macx: LIBS += -L$$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/lib/ -lvlc.5
INCLUDEPATH += $$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/include
DEPENDPATH += $$PWD/../../../../Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/include
不幸的是,应用程序已启动,但 VLC 实例未初始化。看来我的 VLC 安装有问题。
已解决:
经过一些调整后,项目编译并正确启动。 我不明白为什么,但是环境变量 VLC_PLUGIN_PATH 必须在实例化 VLC 之前设置,否则 VLC 拒绝初始化:
//set environment variable VLC_PLUGIN_PATH
int s = setenv ("VLC_PLUGIN_PATH", "/Users/macbookpro15retina/Documents/vlc/build/vlc_install_dir/lib/vlc/plugins", 1);
// Initialize libVLC
vlcInstance = libvlc_new(0, NULL);
其实如果你在QtCreator的Build Environment中设置的话根本就不起作用。
【问题讨论】:
-
您可以显示项目的结构,即文件夹的位置、库的位置等。
-
为什么在
INCLUDEPATH中使用.vlc?在INCLUDEPATH中,您必须放置 .h 文件的路径 -
谢谢,现在我知道更多了。我这样做只是因为它位于我在 VLC 论坛上找到的示例代码中。
-
请显示您项目的文件夹结构。您也可以使用 QtCreator 向导,右键单击项目名称,然后选择 Add Library,然后选择 External Library。在 Linux 中,快捷键是 Ctrl + E,在 Mac OS 中可能是一样的。
标签: c++ qt qt5 qt-creator libvlc