• 大小: 43.14MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-05
  • 语言: 其他
  • 标签: ffmpeg  Qt  

资源简介

从零开始学习音视频编程技术(二十二) FFMPEG Qt视频播放器之BUG修复(升级到ffmpeg4.1) Qt的版本是5.6.2(vs2013) FFMPEG的版本是4.1 SDL的版本是2.04

资源截图

代码片段和文件信息

/**
 * 叶海辉
 * QQ群121376426
 * http://blog.yundiantech.com/
 */

#include “DragAbleWidget.h“
#include “ui_DragAbleWidget.h“

#include 
#include 
#include 
#include 

#define MARGINS 2 //窗体边框

DragAbleWidget::DragAbleWidget(QWidget *parent) :
    QWidget(parent)
    ui(new Ui::DragAbleWidget)
{
    ui->setupUi(this);

    ///定时器用于定制检测鼠标位置,防止鼠标快速移入窗口,没有检测到,导致鼠标箭头呈现拖拉的形状
    mTimer = new QTimer;
    mTimer->setInterval(1000);
    connect(mTimer &QTimer::timeout this &DragAbleWidget::slotTimerTimeOut);
    mTimer->start();

///改变窗体大小相关
    isMax = false;

    int w = this->width();
    int h = this->height();

    QRect screenRect = QApplication::desktop()->screenGeometry();//获取设备屏幕大小
    int x = (screenRect.width() - w) / 2;
    int y = (screenRect.height() - h) / 2;

    mLocation = this->geometry();
//    mLocation = QRect(x y w h);
//    this->setGeometry(mLocation);

    isLeftPressDown = false;
    this->dir = NONE;
    this->setMouseTracking(true);// 追踪鼠标
    ui->widget_frame->setMouseTracking(true);
    ui->widget_back->setMouseTracking(true);
    ui->widget_container->setMouseTracking(true);
//    ui->widget_center->setMouseTracking(true);

    this->setFocusPolicy(Qt::ClickFocus);

    ui->widget_frame->setContentsMargins(MARGINSMARGINSMARGINSMARGINS);
    showBorderRadius(true);

//    ui->widget_frame->setContentsMargins(1 1 1 1);

    //安装事件监听器让标题栏识别鼠标双击
//    ui->widget_beingClass_back->installEventFilter(this);

}

DragAbleWidget::~DragAbleWidget()
{

}

QWidget *DragAbleWidget::getContainWidget()
{
    return ui->widget_container;
}

void DragAbleWidget::settitle(QString str)
{
    ui->label_titleName->setText(str);
    this->setWindowtitle(str);
}

////////////改变窗体大小相关

void DragAbleWidget::mouseReleaseEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton)
    {
        isLeftPressDown = false;
        if(dir != NONE)
        {
            this->releaseMouse();
            this->setCursor(QCursor(Qt::ArrowCursor));
        }
    }
}

void DragAbleWidget::mousePressEvent(QMouseEvent *event)
{
//    qDebug()<<__FUNCTION__;
    if (event->type() == QEvent::MouseButtondblclick)
    {
        if (event->button() == Qt::LeftButton)
        {
//            if(QApplication::keyboardModifiers() == (Qt::ControlModifier|Qt::ShiftModifier|Qt::AltModifier))
            {
                doChangeFullScreen(); //ctrl + 左键
            }
        }
    }

    switch(event->button()) {
    case Qt::LeftButton:
        if (isMax || this->isFullScreen()) break;
        isLeftPressDown = true;
        checkCursorDirect(event->globalPos());

        if(dir != NONE) {
            this->mouseGrabber();
        } else {
            dragPosition = event->globalPos() - this->frameGeometry().topLeft();
        }
        break;
//    case Qt::RightButton:
//        if (!thi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-24 12:16  VideoPlayer\
     目录           0  2019-03-24 10:40  VideoPlayer\bin32\
     文件    31462912  2018-11-11 23:03  VideoPlayer\bin32\avcodec-58.dll
     文件     1304576  2018-11-11 23:03  VideoPlayer\bin32\avdevice-58.dll
     文件     7103488  2018-11-11 23:03  VideoPlayer\bin32\avfilter-7.dll
     文件     5989888  2018-11-11 23:03  VideoPlayer\bin32\avformat-58.dll
     文件      655360  2018-11-11 23:03  VideoPlayer\bin32\avutil-56.dll
     文件      293888  2018-11-11 23:03  VideoPlayer\bin32\ffmpeg.exe
     文件      148480  2018-11-11 23:03  VideoPlayer\bin32\ffplay.exe
     文件      162816  2018-11-11 23:03  VideoPlayer\bin32\ffprobe.exe
     文件      113664  2018-11-11 23:03  VideoPlayer\bin32\postproc-55.dll
     文件     1005056  2019-03-24 10:13  VideoPlayer\bin32\SDL2.dll
     文件      311808  2018-11-11 23:03  VideoPlayer\bin32\swresample-3.dll
     文件      516096  2018-11-11 23:03  VideoPlayer\bin32\swscale-5.dll
     文件      365568  2019-03-24 10:47  VideoPlayer\bin32\VideoPlayer.exe
     目录           0  2019-03-24 10:56  VideoPlayer\bin64\
     文件    45110784  2018-11-11 22:38  VideoPlayer\bin64\avcodec-58.dll
     文件     2423296  2018-11-11 22:38  VideoPlayer\bin64\avdevice-58.dll
     文件     7584768  2018-11-11 22:38  VideoPlayer\bin64\avfilter-7.dll
     文件     6357504  2018-11-11 22:38  VideoPlayer\bin64\avformat-58.dll
     文件      658944  2018-11-11 22:38  VideoPlayer\bin64\avutil-56.dll
     文件      292352  2018-11-11 22:38  VideoPlayer\bin64\ffmpeg.exe
     文件      153600  2018-11-11 22:38  VideoPlayer\bin64\ffplay.exe
     文件      168448  2018-11-11 22:38  VideoPlayer\bin64\ffprobe.exe
     文件      122880  2018-11-11 22:38  VideoPlayer\bin64\postproc-55.dll
     文件     1187840  2019-03-24 10:13  VideoPlayer\bin64\SDL2.dll
     文件      424448  2018-11-11 22:38  VideoPlayer\bin64\swresample-3.dll
     文件      540160  2018-11-11 22:38  VideoPlayer\bin64\swscale-5.dll
     文件      384000  2019-03-24 10:55  VideoPlayer\bin64\VideoPlayer.exe
     目录           0  2019-03-23 22:57  VideoPlayer\module\
     目录           0  2019-03-23 22:57  VideoPlayer\module\DragAbleWidget\
............此处省略505个文件信息

评论

共有 条评论