1 Star 0 Fork 9

请容我想一想/Qml--mediaPlayer

forked from liyanan/Qml--mediaPlayer 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mythread.cpp 1.61 KB
一键复制 编辑 原始数据 按行查看 历史
破忆断回 提交于 2019-12-18 22:18 . 第一次提交
#include "mythread.h"
void MyThead::getFile(QUrl &sd)
{
urls = sd;
if (!this->isRunning())
this->start();
}
void MyThead::run()
{
auto &&url = this->urls;
std::string imagePath = url.toLocalFile().toStdString();
AVFormatContext *fmt_ctx = nullptr;
AVDictionaryEntry *tag = nullptr;
int ret = 0;
qDebug() << "当前的资源为" << imagePath.c_str();
if ((ret = avformat_open_input(&fmt_ctx, imagePath.c_str(), nullptr, nullptr))) {
qDebug() << "Fail to open file";
return;
} else {
avformat_find_stream_info(fmt_ctx, nullptr);
// 读取为秒 //将此数据传到 数据库中去
QMap<QString, QString> maps;
//读取metadata中所有的tag
while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) {
maps.insert(tag->key, tag->value);
}
if (fmt_ctx->iformat->read_header(fmt_ctx) < 0) {
printf("No header format");
return;
}
auto duration = static_cast<int>(fmt_ctx->duration / AV_TIME_BASE);
QString time;
if (duration <= 600) {
time = "0" + QString::number(duration / 60) + ":" + QString::number(duration % 60);
} else {
time = QString::number(duration / 60) + ":" + QString::number(duration % 60);
}
qDebug() << "读取的时长为" << time;
emit insertMusic(maps.value("title"),
maps.value("artist"),
maps.value("album"),
time,
url.toString());
}
emit compeleted();
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
QML
1
https://gitee.com/ailaowang/Qml--mediaPlayer.git
git@gitee.com:ailaowang/Qml--mediaPlayer.git
ailaowang
Qml--mediaPlayer
Qml--mediaPlayer
master

搜索帮助