|
|
|
#include "ffmpegvideodlg.h"
|
|
|
|
#include "ui_ffmpegvideodlg.h"
|
|
|
|
|
|
|
|
ffmpegvideoDlg::ffmpegvideoDlg(QWidget *parent)
|
|
|
|
: QWidget(parent)
|
|
|
|
, ui(new Ui::ffmpegvideoDlg)
|
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
|
|
|
iniWindow();
|
|
|
|
ffmpeg = new Cffmpeg_decode;
|
|
|
|
// this->resize(640,480);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ffmpegvideoDlg::~ffmpegvideoDlg()
|
|
|
|
{
|
|
|
|
if(ffmpeg->isRunning()){
|
|
|
|
stop();
|
|
|
|
}
|
|
|
|
delete ffmpeg;
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ffmpegvideoDlg::iniWindow()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
void ffmpegvideoDlg::setUrl(QString url)
|
|
|
|
{
|
|
|
|
ffmpeg->setUrl(url);
|
|
|
|
}
|
|
|
|
|
|
|
|
void ffmpegvideoDlg::play()
|
|
|
|
{
|
|
|
|
QString VideoFilePath = QDir::currentPath()+"./Video";
|
|
|
|
QDir VideoDir (VideoFilePath);
|
|
|
|
if(!VideoDir.exists())
|
|
|
|
{
|
|
|
|
VideoDir.mkdir(VideoFilePath);
|
|
|
|
qDebug()<<"文件夹创建成功";
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!m_PlayStatus)
|
|
|
|
{
|
|
|
|
connect(ffmpeg,SIGNAL(sendQImage(QImage)),this,SLOT(receiveQImage(QImage)));
|
|
|
|
connect(ffmpeg,&Cffmpeg_decode::finished,ffmpeg,&Cffmpeg_decode::deleteLater);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!ffmpeg->isRunning())
|
|
|
|
{
|
|
|
|
|
|
|
|
ffmpeg->start();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void ffmpegvideoDlg::stop()
|
|
|
|
{
|
|
|
|
if(ffmpeg->isRunning() && !ffmpeg->IsstopPlay ){
|
|
|
|
|
|
|
|
ffmpeg->IsstopPlay = true;
|
|
|
|
ffmpeg->requestInterruption();
|
|
|
|
ffmpeg->quit();
|
|
|
|
ffmpeg->wait();
|
|
|
|
|
|
|
|
ffmpeg = nullptr;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
img.fill(Qt::black);
|
|
|
|
}
|
|
|
|
|
|
|
|
void ffmpegvideoDlg::paintEvent(QPaintEvent *)
|
|
|
|
{
|
|
|
|
QPainter painter(this);
|
|
|
|
painter.drawImage(0,0,img);
|
|
|
|
}
|
|
|
|
|
|
|
|
void ffmpegvideoDlg::receiveQImage(const QImage &rImg)
|
|
|
|
{
|
|
|
|
img = rImg.scaled(this->size());
|
|
|
|
update();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool ffmpegvideoDlg::Isplay(bool IsstopPlay)
|
|
|
|
{
|
|
|
|
return ffmpeg->IsstopPlay = IsstopPlay;
|
|
|
|
}
|