我尝试使 libvlc 的教程示例正常工作。 我通过
sudo apt install libvlc-dev
安装了 vlc SDK,并使用 -lvlc
链接到它。编译和链接完成,没有错误或警告,但每当我尝试初始化 VLC 并使用 libvlc_new
获取实例时,我都会得到 NULL
结果。
int
main(int argc, char *argv[argc])
{
libvlc_instance_t *instance = libvlc_new(0, NULL);
if (instance == NULL) {
fprintf(stderr, "Unable to get VLC instance.\n\t%s\n", libvlc_errmsg());
return EXIT_FAILURE;
}
// ... usage of libvlc_media etc., but the program never reaches that point.
}
每当我执行二进制文件时,我都会得到结果:
$ ./vlc_test some_test_file.mp3
Unable to get VLC instance.
(null)
我的编译选项是:
$ gcc -c main.c -o main.o
$ gcc main.o -o vlc_test -lvlc
我缺少什么才能让 libvlc 工作?
这个问题现在已经相当老了,但我必须深入挖掘才能找到问题的答案,那就是我需要将环境变量
VLC_PLUGIN_PATH
设置为我链接的VLC版本的plugins
文件夹路径.
所以就我而言(在 Mac 上编译):
VLC_PLUGIN_PATH=/Applications/VLC.app/Contents/MacOS/plugins
我希望这可以帮助那些努力运行最基本的 libvlc 示例的人。