16,902
社区成员




构造函数中:
this->process = new QProcess;
this->process->setProcessChannelMode(QProcess::MergedChannels);
arg = "/usr/bin/mplayer";//在Linux系统中安装Mplayer之后,将作用于play()函数的start()
play()中:
QStringList arg1;
this->process->kill();
this->process=new QProcess;
arg1 << fileName;
arg1 << "-slave";//默认情况下,mplayer接受键盘的命令,而"-slave"使其不再接受键盘事件,而是作为后台程序运行,
//接受以“\n”结束的命令控制,这样我们可以在进程中给他发送命令,而不需要操作键盘了.
arg1 << "-quiet"; //尽可能的不打印播放信息
// arg1 << "-fs";
arg1 << "-zoom";//视频居中,四周黑条,全屏播放(好像是默认值
arg1 << "-x";
arg1 << "720";//指定视频x方向是720大小,y方向是576大小
arg1 << "-y";
arg1 << "576";
arg1 << "-wid" << QString::number((unsigned int)(ui->widget->winId()));
// "-wid <窗口标识>" 是指让MPlayer依附于那个窗口,
//ui->widget->winId() 这个指令就是用来获取widget的标识码 ,
//这样视频播放的时候,就在这个部件里播放,相当于给他固定起来。
connect(this->process,SIGNAL(readyReadStandardOutput()),this,SLOT(dataReceive()));
this->process->start(arg,arg1); //开始播放进程
dataReceive()中:
作用为接收信息——从打印信息中接收“视频总时长、进度百分比,视频当前时长”