Qt5,Phonon和多媒体套件

Alv*_*ban 7 qt phonon qt5

我是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,
Run Code Online (Sandbox Code Playgroud)

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

所以我的实际问题是:

  1. 有谁知道Phonon的实际状态,以及将它用于Qt5是否是个好主意?是这样,我有什么工作要做?我想我在这里混合概念,但是在属于Qt的东西和不属于什么之间我们非常迷失,两种可能性的含义是什么.
  2. 知道为什么QTMultimedia的例子不起作用?

总的来说,非常感谢关于这个主题的想法.

Vin*_*ira 6

Phonon框架似乎不包括在Qt 5(Qt和Key Technologies).

您测试的示例似乎仅适用于Qt 4.7,而不适用于Qt 5.可以在此处找到Qt 5.0版本.Qt 5.1版本可以在这里找到.

  • 由于Phonon(作为KDE项目)包含许多特定于KDE的功能,因此即使在之前版本的Qt上也不建议使用IMO.另外,Qt 4.4(据我所知)Qt的最后一个版本正式支持Phonon.今天,QtMultimedia和QtMobility取代了Phonon. (3认同)