我对Qt开发很陌生,并且在MacOSX上使用Qt5 Beta1。

在过去的两天内,我一直在阅读文档,并寻找有关我可能实现的不同可能性的信息,以便实现可显示与特定时刻相对应的视频帧的小部件。简而言之,这是一个不错的旧预览。
首先,我认为,由于我不需要花哨的东西,因此,Phonon将是正确的选择,因为它被称为“比QTMultimedia更高级别,并且在许多情况下更适合应用程序开发人员”。我阅读了它的文档,甚至发现了一些可以帮助我入手的讨论,就像这样; http://www.qtcentre.org/threads/13221-QT-4-4-Phonon-Video-Rendering-a-single-frame。但是,当我尝试自己制作东西时,我意识到我没有Phonon库。对此感到惊讶的是,我研究了Phonon和Qt5。那就是所有麻烦开始的时候。

我开始阅读这样的对话:http://comments.gmane.org/gmane.comp.lib.qt.user/1581
或另一个:http://comments.gmane.org/gmane.comp.lib.qt.devel/3905或另一个链接:https://bugreports.qt.io/browse/QTBUG-26471。我真的很困惑,不知道下载Phonon库是一个好主意还是过一段时间后Qt5不再支持它。
因此,我决定退后一步,再次考虑使用QTMultimedia代替Phonon。我看了他们的VideoWidget示例http://doc.qt.io/qt-4.8/qt-multimedia-videowidget-example.html,当我尝试运行它时,它引发了几个错误(我只是在输出的开头发布):

In file included from ../VideoExample/videoplayer.cpp:43:
In file included from ../VideoExample/videowidget.h:44:
../VideoExample/videowidgetsurface.h:57:11: warning: 'VideoWidgetSurface::isFormatSupported' hides overloaded virtual function [-Woverloaded-virtual]
 bool isFormatSupported(const QVideoSurfaceFormat &format, QVideoSurfaceFormat *similar) const;
      ^
../../Downloads/qt-everywhere-opensource-src-5.0.0-beta1/qtbase/include/QtMultimedia/../../../qtmultimedia/src/multimedia/video/qabstractvideosurface.h:78:18: note: hidden overloaded virtual function 'QAbstractVideoSurface::isFormatSupported' declared here
virtual bool isFormatSupported(const QVideoSurfaceFormat &format) const;
             ^
../VideoExample/videoplayer.cpp:61:40: error: expected a type
 QAbstractButton *openButton = new QPushButton(tr("Open..."));
                                   ^
../VideoExample/videoplayer.cpp:62:6: error: no matching member function for call to 'connect'
 connect(openButton, SIGNAL(clicked()), this, SLOT(openFile()));
 ^~~~~~~
../../Downloads/qt-everywhere-opensource-src-5.0.0-beta1/qtbase/include/QtCore/../../src/corelib/kernel/qobject.h:211:36: note: candidate function not viable: cannot convert argument of incomplete type 'QAbstractButton *' to 'const QObject *'
static QMetaObject::Connection connect(const QObject *sender, const char *signal,

这是我感到自己完全迷失并在这里写的那一刻:/

所以我的实际问题是:
  • 是否有人知道Phonon的实际状态,并且将其用于Qt5是个好主意吗?是的,我必须使它起作用吗?我想我在这里混合了一些概念,但是我在属于Qt的东西与不属于Qt的东西以及这两种可能性的含义之间深深地迷失了。
  • 知道为什么QTMultimedia的示例不起作用吗?

  • 总的来说,对此主题的想法将不胜感激。

    最佳答案

    Qt 5(Qt and Key Technologies)似乎没有包含Phonon框架。

    您测试的示例似乎仅适用于Qt 4.7,而不适用于Qt5。可以在here中找到Qt 5.0版本。 Qt 5.1版本可以在here中找到。

    关于qt - Qt5,声子和多媒体套件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13608755/

    10-12 06:20