#include <QApplication>
#include <QProcess>
#include <QWidget>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
view.resize(QSize(640, 480));
QWidget *m_widget = new QWidget(&view); // 必须指定QWidget的Parent 是QGraphicsView 才行!
m_widget->resize(view.size());
scene.addWidget(m_widget);
QProcess *m_process = new QProcess();
QStringList args;
args << "-slave";
args << "-quiet";
args << "-wid" << QString::number((ulong)m_widget->winId());
args << "-colorkey" << "0x020202";
args << "-vo" << "direct3d";
args << "-cache" << "4096"; // For network
args << "-ss" << QString::number(0);
// args << "-idle";
args << "e:\\media\\1.mov";
m_process->setProcessChannelMode(QProcess::MergedChannels);
m_process->start("mplayer.exe", args);
m_process->waitForStarted();
qDebug() << view.size();
view.show();
return app.exec();
}
参考:
http://code.google.com/p/phonon-vlc-mplayer/issues/detail?id=18
http://mail.kde.org/pipermail/phonon-backends/2009-October/000317.html