因为使用ffmpeg库去实现录屏,不稳定因素太多,而且难度有点大,所以取巧使用命令行进程方式录制;
进程类
QProcess* m_pProcess = { NULL };
初始化并连接信号与槽
if (!m_pProcess)
{
m_pProcess = new QProcess(this);
// 错误回调
connect(m_pProcess,SIGNAL(errorOccurred(QProcess::ProcessError)),this,SLOT(slot_errorOccurred(QProcess::ProcessError)));
// 进程结束回调
connect(m_pProcess, SIGNAL(finished(int , QProcess::ExitStatus)), this, SLOT(slot_finished(int , QProcess::ExitStatus)));
// 外部程序错误输出
connect(m_pProcess, SIGNAL(readyReadStandardError()), this, SLOT(slot_readyReadStandardError()));
// 外部程序标准输出
connect(m_pProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(slot_readyReadStandardOutput()));
// 程序开始执行
connect(m_pProcess, SIGNAL(started()), this, SLOT(slot_started()));
// 外部程序发生变动时
connect(m_pProcess, SIGNAL(stateChanged(QProcess::ProcessStat