首页 > 新闻系统 > 编程天地 > 文章正文

在QT中调用mplayer

2008-04-07 16:31:47 来源:中国自学编程网 作者:佚名 点击:
如果是想在QT之外打开一个mplayer窗口就很容易:

如果是想在QT之外打开一个mplayer窗口就很容易:

const QString mplayerPath("D:/tools/mplayer/mplayer.exe");
QStringList args; 
args<<"2.avi";
QProcess* myProcess=new QProcess;
myProcess->start(mplayerPath,args);
如果是想在QT的窗口里用mplayer,就像smplayer那像,这可不是件容易的事。
在网上只找到一上法文的例子:
http://doc.qtfr.org/post/2007/03/21/Un-conteneur-pour-MPlayer-utilisation-de-QProcess 用QProcess实现的。可用google英文翻译后阅读。
代码在:
http://doc.qtfr.org/public/2007/qt_mplayer.tar.gz 
我在windows下实验成功。

也可以研究一下smplayer的源码。大体思想是(别人总结的,跟上面的例子一样):
发现mplayer的参数-wid可以把输出流重定向的指定的窗体,通过winId()得到窗体的id即可,但是我不知道视频流或者说外部显示的数据是怎么在Qwidget上呈现的。

这是那个法国人的例子程序,我加了些comment,注意要把2.avi放到release文件夹下,执行可执行程序,而不是编译后点运行:

 

#include <QApplication>
#include <QProcess> 
#include <QVBoxLayout>
#include <QLayoutItem>
#include <QWidget>
#include <QPaintEvent>
#include <QPainter>
#include <QColor>
#include <QRect>
#include <QLinearGradient>
#include <QSizePolicy>
#include <QPushButton>
#include <QTextEdit>
#include <QSlider>
#include <QCloseEvent>
#include <QTimer>

#ifdef Q_OS_WIN32
const QString mplayerPath("D:/tools/mplayer/mplayer.exe");
#else
const QString mplayerPath("/usr/bin/mplayer");
#endif
const QString movieFile("2.avi");

class PlayerWidget: public QWidget
...{
    Q_OBJECT

private:
    QPushButton *controller;
    QWidget *renderTarget;
    QProcess *mplayerProcess; //main thing
    bool isPlaying;
    QSlider *timeLine;
    QTimer *poller;
    QTextEdit *log;
    
public:
    PlayerWidget(QWidget *parent =0)
        :QWidget(parent), isPlaying(false)
    ...{
        controller = new QPushButton("Play");
        
        renderTarget = new QWidget(this);
 renderTarget->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
        renderTarget->setAttribute(Qt::WA_OpaquePaintEvent );
        renderTarget->setMinimumSize(500, 500);
        
        timeLine = new QSlider(Qt::Horizontal);

        log = new QTextEdit;
        log->setReadOnly(true);

     

9 7 3 1 2 3 4 5 6 4 8 :

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203