
QT
文章平均质量分 85
虚坏叔叔
「虚幻私塾」
展开
-
C++ QT结合FFmpeg实战开发视频播放器-20读取PCM音频文件进行播放2
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、读取PCM音频文件进行播放接着上节课将: while (!in.eof()) { if (out->bytesFree() < size) { // 等待继续读取数据,然后进行播放 continue; } in.read(tmp, size); streamsize count = in.gcount(); if (count <= 0)原创 2022-04-29 19:46:11 · 1157 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-19读取PCM音频文件进行播放1
原创 2022-04-28 19:51:09 · 1009 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-18PCM过程的一些基本参数
作者:虚幻私塾博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、编解码类参数含义1. 采样率每秒钟采样的频率。采样率一般来说有几个极点,这里我们设置44100赫兹人耳的听力范围是在20赫兹到20000赫兹,著名的奈奎斯特采样定理概念:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号完整地保留了原始信号中的信息 QAudioFormat fmt;原创 2022-04-27 20:11:19 · 2246 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-17FFmpeg基本介绍
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、FFmpeg基本介绍本节介绍ffmpeg基本情况以及项目中怎么使用它。打开官网ffmpeg.org。他是一个能够跨平台的多媒体框架,它 包括编码 解码 转码 播放等功能。它支持的格式非常多,可以跨越多个操作系统,解码效率非常高,很多的播放器都是基于ffmpeg,它部分基于GPL协议,部分基于LGPL。GPL是开源社区非常流行的协议,包括Linux的版本也是这个,它要求你基于它开发的软件也必须是原创 2022-04-26 19:59:32 · 3629 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-16音视频采样编码的基本原理
作者:虚幻私塾博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、音视频采样编码的基本原理这节课主要讲解音视频采样,编解码到最后播放的大致过程。大家都知道,平常传感器采集的音视频是模拟信号。类似于这幅图:这幅图学过高中数学就应该了解它类似于三角函数的曲线 它每一个点的数据是平滑的大学学过一门课程是离散数学,采样的过程就是取其中平滑的曲线上的一个一个离散的点,它实际上是将模拟的信号用采样之后,用离散的点来表达:这就是将传感器采集到的模拟数据转换成计算机原创 2022-04-25 20:01:59 · 972 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-14添加换肤按钮功能和文件选择框
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、换肤按钮地添加点击换肤按钮后,会弹出对话框。main.qml添加换肤按钮: // 换肤按钮 Button { id: changeSkinBtn width: root.controlAreaButtonWidth height: root.controlAreaButtonHeight原创 2022-04-24 19:34:52 · 737 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-12QML文本控件属性的绑定
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄QML文本控件属性的绑定一、QML界面添加控件qml添加文本Text:这里比较重要的是:text:“”+MainApp.demoNum实现了文本控件和MainApp对象中的demoNum属性的绑定 Text { id:text x:400 y:400 text:""+MainApp.demoNum col原创 2022-04-23 21:57:46 · 681 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-11全局单例对象的构建以及控件响应的流程
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、Mainapp对象全局单例建立Qml机制这里通过GetInstance可以拿到全局唯一的MainApp对象:这个对象是一个全局对象,默认为nullptr。如何才能够将这个对象初始化 并且保证它是全局唯一的呢?这里通过extern关键字引用全局对象g_pApp,将创建的局部变量的app对象赋值给这个全局对象,那么这个对象就是全局唯一的。当main函数结束时,我们也记得将这个全局对象指针置为空原创 2022-04-23 19:37:49 · 3323 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-10qml的最基本使用和项目绑定
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、main.qml编写脚本建立界面布局为了简化项目的讲解,这里提供了一个小的项目demo,基于这个demo,带大家理解qml最基本的使用和项目绑定。链接:https://pan.baidu.com/s/1MPikpz4MuL-GSMADeazSkg提取码:i4ufmain.qml中创建布局import QtQuick 2.9import QtQuick.Window 2.2import Q原创 2022-04-22 16:55:09 · 872 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-09项目资源和UI加载的流程
项目资源和UI加载的流程作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、整体main函数流程main函数中,主要是创建了一个MainApp的对象,这个对象是我们自己定义的,int main(int argc, char *argv[]){ QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software); QCoreApplication::setAttri原创 2022-04-21 07:23:09 · 830 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-08播放器项目的整体UI架构
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、QT项目设置文件MyPlayer.Pro的讲解MyPlayer.Pro项目文件定义整个项目的设置。我们来看下这个文件的具体含义。这个项目首先使用了QT的模板app:# Project TypeTEMPLATE = app下面确定了QT要引用的模块,# Qt modules that are used by your projectQT += qml quick gui widgets原创 2022-04-20 20:15:12 · 908 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-07QT多线程编程QThread的使用
作者:虚幻私塾博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、QT多线程编程QThread的使用我们需要使用多线程来加快视频编解码的效率。定义一个类MyThread继承QThread,QThread是继承于QObject:#include <QThread>class MyThread : public QThread{};setPriority设置线程的优先级,线程在争取cpu资源的时候,要考虑优先级的问题。void setPr原创 2022-04-19 20:05:22 · 1187 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-06QT的智能指针QScopedPointer及Reset方法的使用
作者:虚坏叔叔博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、智能指针QScopedPointer为了测试智能指针的析构,我们定义一个类:class SPA{public: SPA() { qDebug() << "SPA::SPA()" << endl; } ~SPA() { qDebug() << "SPA::~SPA()" << endl; } void Print() {原创 2022-04-19 07:17:48 · 993 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-05QT字符串和数字的转换以及QDebug的使用
作者:虚幻私塾博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄一、QString字符串和数字互相转换数字转字符串 // 数字到字符串 QString str = QString::number(3.14); str.setNum(3.14);字符串到数字 // 字符串到数字 QString str3 = "123"; int i = str3.toInt(); str3 = "abc"; i = str3.toInt();二、QDebug的原创 2022-04-18 19:55:55 · 505 阅读 · 0 评论 -
QT创建项目 编译提示 无法运行“rc.exe”
作者:虚坏叔叔博客:https://xuhss.com沉淀、分享、成长,让自己和他人都能有所收获!😄一、QT创建项目 编译提示 无法运行“rc.exe”网上搜索了挺多,都只是拷贝了rc.exe,除了rc.exe,还需要拷贝rcdll.dll用everything软件搜一下电脑上的rc.exe,复制你电脑的这个路径下面的rc.exe 和rcdll.dllC:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64粘贴到你电脑的Q原创 2022-04-18 13:52:30 · 9355 阅读 · 3 评论 -
C++ QT结合FFmpeg实战开发视频播放器-04Qt字符串QString的基本使用
作者:虚坏叔叔博客:https://xuhss.com沉淀、分享、成长,让自己和他人都能有所收获!😄一、Qt字符串QString的基本使用在QT中,类都是以Q开头的,字符串叫做QString。#include <QGuiApplication>#include <QQmlApplicationEngine>#include <QString>int main(int argc, char *argv[]){ //QCoreApplicati原创 2022-04-17 23:10:49 · 939 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-03QT项目的基础架构类和UI类
作者:虚幻私塾博客:https://xuhss.com早餐店不会开到晚上,想吃的人早就来了!😄QT项目的基础架构类和UI类一、QCoreApplication类和QObject查看源码可发现QCoreApplication 继承于QObect, 查看QObect定义:在QT中,所有的类的基类都是QObject,它也是QT模型的核心。它包含了QT框架中的机制。包括信号槽的机制。这个机制类似于观察者的模式,这里你可以定义一些方法,当某一个对象的信息发生改变的时候,可以调用到你定制的回调函原创 2022-04-17 18:08:29 · 1743 阅读 · 0 评论 -
C++ QT结合FFmpeg实战开发视频播放器-02QT项目创建和Visual studio下进行QT项目的开发
一、QT项目创建命名项目名称和项目路径:创建项目:选择qt版本:选择开发包:版本控制不做选择,选择本地的环境即可点击完成实现项目的创建这样,就完成了项目的创建:二、QT项目讲解注意:在我们的播放器源码中的pro文件是修改过的,大家不需要轻易修改。可以看到main.cpp在Sources中,程序入口在这里。界面的配置实在main.qml中。项目的ui部分倒是在qml文件中,你可以通过配置qml脚本来完成界面的制作。也可以通过拖拽组件的方式实现界面制作:我们主要还原创 2022-04-17 11:11:27 · 1899 阅读 · 0 评论 -
解决QT问题:运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
报错如下:E:\project\QTProject\HelloWord>qmakeProject ERROR: Cannot run compiler 'cl'. Output:======================================Maybe you forgot to setup the environment?E:\project\QTProject\HelloWord>通过everything软件,找到cl.exe文件的所在位置:此文件在我的电脑原创 2022-04-17 10:40:57 · 4819 阅读 · 3 评论 -
解决安装QT后MSVC2015 64bit配置无编译器和调试器问题
一、问题描述如果在安装QT后显示没有编译器,则是在安装QT的过程中忘记了选择Tools目录下的MinGW这个选项如下图所示,MSVC2015 32bit和MSVC2015 64bit是C++桌面开发的编译器,一般都选择安装。Qt Creator是默认选择的,建议安装。安装完成后如果出现如下情况:则说明系统缺少调试器,需要去微软官网下载调试器,二、调试器下载网址:调试器下载地址按照后面几幅图的操作即可完成下载和安装下载完成后,解压文件三、安装调试器安装exe文件即可这一步有一张图原创 2022-04-16 23:21:04 · 7759 阅读 · 1 评论 -
C++ QT结合FFmpeg实战开发视频播放器-01环境的安装和项目部署
一、下载及安装ffmpegffmpeg下载:ffmpeg官网Download——左下选择windows图标——Windows builds by Zeranoe——选4.2.2——64位——下载Shared和Devffmpeg配置:新建一个文件夹,里边手动添加四个文件夹,分别为bin、include、lib、src,项目文件直接放在src中,ffmpeg_Shared中bin文件下的所有文件放于bin中,ffmpeg_Dev中include文件中所有文件放于include中,lib同理示例项目源原创 2022-04-16 16:14:50 · 2781 阅读 · 0 评论 -
Qt中的套件提示no complier set in kit和no debugger,出现黄色感叹号问题解决(MSVC2017)
QT和visual studio混合编程初学者常见粗无原创 2022-04-16 14:56:33 · 7427 阅读 · 0 评论