Phonon速度很慢,可绝薯别怪我,耐心链宏银等它蹦出来
#include
#include <棚宴Phonon>
class VWidget : public QWidget
{
public:
VWidget (QWidget *parent = 0) : QWidget (parent) {
mediaObject = new Phonon::MediaObject (this);
videoWidget = new Phonon::VideoWidget (this);
Phonon::createPath (mediaObject, videoWidget);
audioOutput = new Phonon::AudioOutput (Phonon::VideoCategory, this);
Phonon::createPath (mediaObject, audioOutput);
mediaObject->setCurrentSource (QString ("R:/temp/release/demo.avi"));
mediaObject->play();
}
private:
Phonon::MediaObject *mediaObject;
Phonon::VideoWidget *videoWidget;
Phonon::AudioOutput *audioOutput;
};
int main (int argc, char *argv[])
{
QApplication app (argc, argv);
VWidget *qWidget = new VWidget;
qWidget->setMinimumSize (640, 480);
qWidget->show();
qApp->processEvents();
return app.exec();
}
是的,Qmovie只能播放gif的图片。
你如果想播放视频的话,应该使用VideoPlayer类,这个类是在phonon模块,你可以继承该类,也可以像普通控件一森樱配样使用,非常简单,这个类有下面这些方法:
load (),pause (),play (),seek (),setVolume (),stop ()
很容弄明白这些此指方颂喊法是干什么的。。。
不懂再问我吧,祝你好运。。。
我不得不说之前的解答有误导之嫌. 我自己照敬咐培着之前的代码做,也是看不到视频. 为避免后来者在这上面纠结. 回答一简困下. 问题在于没有把videoWidget 放到合适的位置上,而不是解码器的问题.
下面这段代码是可以工作的.
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *mainWidget = new QWidget;
mainWidget->setWindowTitle("Prds Trial Player");
mainWidget->resize(640,480);
Phonon::MediaObject *mediaObject= new Phonon::MediaObject;
QUrl url = "C:\\Users\\Public\\Videos\\Sample Videos\\Wildlife.wmv";
mediaObject->setCurrentSource(url);
Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget;
Phonon::createPath(mediaObject, videoWidget);
videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);
Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory);
Phonon::createPath(mediaObject, audioOutput);
QLabel *label = new QLabel("Volume: ");
Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;
volumeSlider->setAudioOutput(audioOutput);
volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
Phonon::SeekSlider *seekSlider = new Phonon::SeekSlider;
seekSlider->setMediaObject(mediaObject);
QHBoxLayout *hLayout = new QHBoxLayout;
hLayout->addWidget(label);
hLayout->addWidget(volumeSlider);
hLayout->addStretch();
QVBoxLayout *vLayout = new QVBoxLayout;
vLayout->addWidget(videoWidget);
vLayout->addWidget(seekSlider);
vLayout->addLayout(hLayout);
mainWidget->setLayout(vLayout);
mainWidget->show();
mediaObject->play();
return app.exec();
}