• 大小: 26.88M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-08
  • 语言: 其他
  • 标签: 其他  

资源简介

基于FFmpegQt的视频播放器完整源码.rar

资源截图

代码片段和文件信息

#include “FFVideoPlyer.h“
#include 
#include 
#include 
#include 
#include “MyFFmpeg.h“
#include “MyAudio.h“

using namespace std;

//全局静态变量只在该cpp文件中有效
static bool isPressSlider = false;

FFVideoPlyer::FFVideoPlyer(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
startTimer(40);
ui.curTime->setText(“00:00:00“);
ui.totalTime->setText(“00:00:00“);

connect(ui.btn_OpenVideo SIGNAL(clicked()) this SLOT(slotOpenFile()));
connect(ui.btn_Play SIGNAL(clicked()) this SLOT(slotPlay()));
connect(ui.timeSlider SIGNAL(sliderPressed()) this SLOT(sliderPressed()));
connect(ui.timeSlider SIGNAL(sliderReleased()) this SLOT(sliderReleased()));
}

void FFVideoPlyer::slotOpenFile()
{
QString fname = QFileDialog::getOpenFileName(this QString::fromLocal8Bit(“打开视频文件“));
if (fname.isEmpty())
{
return;
}

ui.lineEdit_VideoName->setText(fname);

int totalMs = MyFFmpeg::GetObj()->OpenVideo(fname.toLocal8Bit());

MyAudio::GetObj()->sampleRate = MyFFmpeg::GetObj()->m_sampleRate;
MyAudio::GetObj()->channel = MyFFmpeg::GetObj()->m_channel;
MyAudio::GetObj()->sampleSize = 16;

MyAudio::GetObj()->Start();  //播放音频

char buf[1024] = { 0 };
int min = (totalMs / 1000) / 60;
int sec = (totalMs / 1000) % 60;
sprintf(buf “%03d:%02d“ min sec);
this->ui.totalTime->setText(buf);

MyFFmpeg::GetObj()->m_isPlay = true;
ui.btn_Play->setText(QString::fromLocal8Bit(“暂停“));
}

void FFVideoPlyer::slotPlay()
{
if (ui.btn_Play->text() == QString::fromLocal8Bit(“暂停“))
{
MyFFmpeg::GetObj()->m_isPlay = false; //线程阻塞,视频暂停
ui.btn_Play->setText(QString::fromLocal8Bit(“播放“));
}
else
{
MyFFmpeg::GetObj()->m_isPlay = true;  //线程运行,视频播放
ui.btn_Play->setText(QString::fromLocal8Bit(“暂停“));
}
}

void FFVideoPlyer::timerEvent(QTimerEvent *e)
{
int min = (MyFFmpeg::GetObj()->m_pts / 1000) / 60;
int sec = (MyFFmpeg::GetObj()->m_pts / 1000) % 60;
char buf[1024] = { 0 };
sprintf(buf “%03d:%02d“ min sec);
ui.curTime->setText(buf);  //当前播放时间

if (MyFFmpeg::GetObj()->m_totalMs > 0)
{
float rate = MyFFmpeg::GetObj()->m_pts / (float(MyFFmpeg::GetObj()->m_totalMs));
//只有按下了,才才显示进度条
if (!isPressSlider)
{
this->ui.timeSlider->setValue(rate * 1000); //进度条
}
}
}

void FFVideoPlyer::sliderPressed()
{
isPressSlider = true;
}

void FFVideoPlyer::sliderReleased()
{
isPressSlider = false;
float pos = 0;
pos = this->ui.timeSlider->value() / (float)(ui.timeSlider->maximum() + 1); //从0开始的,不能让分母为0
MyFFmpeg::GetObj()->Seek(pos);
}

void FFVideoPlyer::mousePressEvent(QMouseEvent *e)
{
int value = ((float)(e->pos().x()) / (float)(this->width())) * (ui.timeSlider->maximum() + 1);
ui.timeSlider->setValue(value);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     80384  2019-01-14 15:11  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\.vs\FFVideoPlyer\v14\.suo

     文件       2977  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.Build.CppClean.log

     文件       2853  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.log

     文件     252806  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.obj

     文件      15638  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\CL.command.1.tlog

     文件     323518  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\CL.read.1.tlog

     文件       5820  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\CL.write.1.tlog

     文件        160  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\FFVideoPlyer.lastbuildstate

     文件       1550  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\FFVideoPlyer.write.1u.tlog

     文件       3268  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\link.command.1.tlog

     文件       6712  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\link.read.1.tlog

     文件       1610  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\link.write.1.tlog

     文件        346  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\QtMoc.read.1u.tlog

     文件        858  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\QtMoc.write.1u.tlog

     文件        120  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\QtRcc.read.1u.tlog

     文件        278  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\QtRcc.write.1u.tlog

     文件        118  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\QtUic.read.1u.tlog

     文件        270  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\FFVideoPlyer.tlog\QtUic.write.1u.tlog

     文件     105588  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\main.obj

     文件     109835  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\moc_FFVideoPlyer.obj

     文件      48891  2019-01-14 14:34  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\moc_PlayThread.obj

     文件      71651  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\moc_VideoViewWidget.obj

     文件      75567  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\MyAudio.obj

     文件      25621  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\MyFFmpeg.obj

     文件     220440  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\PlayThread.obj

     文件       5563  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\qrc_FFVideoPlyer.obj

     文件       2011  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\qt.log

     文件        681  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\qt.txt

     文件    2215936  2019-01-14 14:53  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\vc140.pdb

     文件      93623  2019-01-14 14:33  基于FFmpeg Qt的视频播放器完整源码\FFVideoPlyer\FFVideoPlyer\Debug\VideoViewWidget.obj

............此处省略181个文件信息

评论

共有 条评论