【发布时间】:2016-07-29 11:44:27
【问题描述】:
我正在使用 Qt 和 libvlc 为 ip 摄像机流创建 gui。完成后,我开始针对错误的值 NULL 对其进行测试...等等。我的问题是,当我将错误的字符串作为网络链接时,我不会将 NULL 作为返回值。部分代码是这样的
const char * const vlc_args[] = {
"--preferred-resolution=576",
"--network-caching=250",
"--no-audio"
};
my_vlcInstance = libvlc_new(3, vlc_args);
if (my_vlcInstance == NULL){
emit sendDebugMessage("Couldn't create vlc instance", "Red");
return;
}
my_LiveMedia = libvlc_media_new_location(my_vlcInstance, link.toStdString().c_str());
if (my_LiveMedia == NULL){
emit sendDebugMessage("Error installing media", "Red");
return;
}
my_LiveMediaPlayer = libvlc_media_player_new_from_media(my_LiveMedia);
if (my_LiveMediaPlayer == NULL){
emit sendDebugMessage("Error creating media player", "Red");
return;
}
现在链接是一个包含网络链接的 QString。我知道坏事会发生,因为我可以在 Visual Studio 调试窗口中看到错误。 “核心输入错误:打开‘dsfgdfgfg’失败”“您的输入无法打开”之类的。那么为什么我不能捕捉到这些错误呢?
此外...当我按下开始录制按钮时,会生成一个文件(由于没有流而明显损坏),并且 libvlc 函数调用不会返回文档中指定的错误。例如:
if (libvlc_media_player_play(my_LiveMediaPlayer) == 0){
emit sendDebugMessage("Live mode started successfully", "Green");
isLive = true;
}
那么我该如何捕捉坏链接呢?
【问题讨论】:
-
你试过vlc-qt吗?这可能对你有帮助
-
我在让它与 dll 和版本一起工作时遇到了问题,我决定跳过中间人......
标签: c++ visual-studio qt libvlc