Qt简单编程--给裸体的MPlayer披件衣服变成自己的播放器

来源:互联网 发布:淘宝网加绒运动服装 编辑:程序博客网 时间:2024/05/01 14:09

很很佩服那些开发免费自由软件的工程师,他们发布自由软件,我毫无贡献地很不好意思地把它拿来用,给个界面就是自己的软件,如果脸皮再厚点就可以自己的名义发布出去,就象给裸体的自由软件披件外衣,这就是MPlayer。
想一边看视频一边打字记录,要求播放器很方便暂停重复等,当然结果是找不到这样的播放器,当然最后就想到自己做一个。
用Qt自带功能是很难很复杂实现,这不符合我的“简单”要求。竟然发现有一简单的途径能实现我的要求,它就是MPlayer,简单地说就是以Slave的方式运行MPlayer,通过QProcess来控制它。
这里写图片描述
使用MPlayer来播放,在Qt中很简单。

  1. 定义一个QWidget作为播放窗口。
  2. 定义一个QProcess来控制MPlyaer。
  3. 使用MPlayer的Slave命令来控制播放。

在头文件中定义。

QWidget *qw_mplay;QProcess *qp_mplay;

初始化上面的东东。

    qw_mplay = new QWidget(this);    qp_mplay = new QProcess(this);    qw_mplay->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));    qw_mplay->setAttribute(Qt::WA_OpaquePaintEvent );    qw_mplay->setMinimumSize(640, 400);    qw_mplay->move(10,80+10);

定义Mplayer的路径与要播放的视频文件。

const QString mplayerPath("MPlayer-corei7/mplayer.exe");const QString movieFile("02.rmvb");

播放视频文件。

    QStringList args; //运行mplayer需要的参数    args << "-slave";    args << "-quiet";    args << "-wid" << QString::number(qw_mplay->winId());    args << "-vo" << "directx:noaccel";    args << movieFile;    qp_mplay->setProcessChannelMode(QProcess::MergedChannels);    qp_mplay->start(mplayerPath, args); //开始运行这个进程

由于简单,它没有暂停,快进,快退,停止等功能。

0 0