标签:Widget QT 音频 ui QString file include 详细信息 void
一、环境介绍
操作系统介绍:win10 64位
QT版本: 5.12.6
编译器: MinGW32
FFMPEG: 4.2.2
下载地址:
二、软件效果
三、核心代码
3.1 widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->plainTextEdit->setReadOnly(true);
this->setWindowTitle("获取媒体文件信息(支持拖动文件到窗口里)");
setAcceptDrops(true);
}
Widget::~Widget()
{
delete ui;
}
/*
工程: GetMediaInformation
日期: 2021-07-23
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 选择路径
*/
void Widget::on_pushButton_select_clicked()
{
QString filename=QFileDialog::getOpenFileName(this,"选择打开的文件","C:/",tr("*.*"));
//filename==选择文件的绝对路径
LoadName(filename);
}
/*
工程: GetMediaInformation
日期: 2021-07-23
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 传入媒体名称
*/
void Widget::LoadName(QString in_file)
{
if(!in_file.isEmpty())
{
ui->lineEdit_info->setText(in_file);
QString json=MediainFormation(in_file);
ui->plainTextEdit->clear();
ui->plainTextEdit->insertPlainText(json);
}
}
/*
工程: GetMediaInformation
日期: 2021-07-23
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 获取媒体信息
*/
QString Widget::MediainFormation(QString in_file)
{
QString ffmpeg_path=QCoreApplication::applicationDirPath();
//QString strCmd="C:/FFMPEG/ffmpeg_x86_4.2.2/bin/ffprobe.exe -v quiet -of json -i D:/jiyi.mp4 -show_streams";
ffmpeg_path+="ffmpeg422/";
QString strCmd=QString("ffmpeg422/ffprobe.exe -v quiet -of json -i \"%1\" -show_streams").arg(in_file);
qDebug()<<"strCmd:"<<strCmd;
QProcess process;
// process.setWorkingDirectory(ffmpeg_path);
// process.setReadChannel(QProcess::StandardOutput);
process.start(strCmd);
process.waitForFinished();
return process.readAll();
}
void Widget::dragEnterEvent(QDragEnterEvent *e)
{
if (e->mimeData()->hasUrls())
{
e->acceptProposedAction();
}
}
void Widget::dropEvent(QDropEvent *e)
{
foreach (const QUrl &url, e->mimeData()->urls())
{
QString fileName = url.toLocalFile();
LoadName(fileName);
}
}
3.2 widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QFileDialog>
#include <QProcess>
#include <QCoreApplication>
#include <QDebug>
#include <QDragEnterEvent>
#include <QUrl>
#include <QMimeData>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
QString MediainFormation(QString in_file);
void LoadName(QString in_file);
private slots:
void on_pushButton_select_clicked();
protected:
void dragEnterEvent(QDragEnterEvent *e);
void dropEvent(QDropEvent *e);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
标签:Widget,QT,音频,ui,QString,file,include,详细信息,void 来源: https://blog.csdn.net/xiaolong1126626497/article/details/119026391
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。