这一功能需要使用摄像头 则需要链接多媒体模块多媒体工具模块 在pro文件中加上:

QT       += multimedia multimediawidgets

使用Qt的3个类实现画面显示
QCamera:摄像头对象
QCameraViewfinder:用于实时显示摄像头传来的图像的控件
QCameraImageCapture:用于捕获摄像头图像实现拍照功能

测试代码如下,在窗口类中定义即可

pCamera =new QCamera(this); //创建摄像头对象
pViewfinder =new QCameraViewfinder(this);    //创建实时显示摄像头图像的对象
pImageCapture =new QCameraImageCapture(pCamera); //创建截取摄像头图像的对象
//创建并设置按钮对象
QPushButton* button1 =new QPushButton("拍照");
QPushButton* button2 =new QPushButton("退出");
//创建并设置布局对象
QVBoxLayout* mainLayout =new QVBoxLayout(this);
mainLayout->addWidget(pViewfinder); //将取景器加入主界面中
mainLayout->addWidget(button1);
mainLayout->addWidget(button2);
pCamera->setViewfinder(pViewfinder); //给camera设置viewfinder
pCamera->start(); //开始摄像

分析:
1、在QWidget类上显示视频信息,一般使用paintEvent()显示图像,这样做CPU的占用率会很高,工程健壮性很低。
2、摄像头的捕捉数据需要存储成视频文件,使用这种方法不利于对图像帧的存储操作。

QOpenGLWidget

为解决CPU占用率过高的问题,显示视频的类,让它继承QOpenGLWidget,这样,在嵌入式设备上面,使用的是gpu渲染,而不是cpu,然后重新使用paintEvent()函数。

QOpenGLWidget类是用于渲染OpenGL图形。

除了可以选择使用QPainter和标准的OpenGL渲染图形,QOpenGLWidget类提供了在Qt应用程序中显示OpenGL图形的功能。它使用起来非常简单:新建类继承于QOpenGLWidget,使用方法就像继承于QWidget类子类一样。

QOpenGLWidget类提供了三个方便的虚函数,可以在新建的子类中重新实现以完成OpenGL的任务:
paintGL()—渲染OpenGL场景,需要更新Widget时就会调用。
resizeGL()—设置OpenGL视口,投影等。每当调整Widget的大小时(第一次显示窗口Widget时会调用它)。
initializeGL()—建立OpenGL的资源和状态。在第一次调用resizeGL()或paintGL()之前调用一次。

如果需要从paintGL()以外的地方触发重绘(一个典型的例子是使用定时器为场景设置动画),应该调用widget的update()函数来进行更新。
实现代码如下:

#ifndef OPENGLWIDGET_H
#define OPENGLWIDGET_H#include <QWidget>
#include <QOpenGLWidget>
#include <QImage>class OpenGLWidget : public QOpenGLWidget
{Q_OBJECTpublic:OpenGLWidget(QWidget *parent = nullptr);QImage m_CameraFrame;protected:void paintGL() override;public slots:void showCameraFrameSlot(QImage image);
};#endif // OPENGLWIDGET_H
#include "openglwidget.h"
#include <QPainter>OpenGLWidget::OpenGLWidget(QWidget *parent)
{}void OpenGLWidget::paintGL()
{QPainter painter(this);if (m_CameraFrame.size().width() <= 0){return;}QImage _image = m_CameraFrame.scaled(this->size());painter.drawImage(0, 0, _image);
}void OpenGLWidget::showCameraFrameSlot(QImage image)
{m_CameraFrame = image;this->update();
}

Qt使用QAbstractVideoSurface捕获视频帧(信号槽方式)

Qt中捕获视频流方式:用QCamera::setViewfinder(QAbstractVideoSurface *surface)

QAbstractVideoSurface类是视频演示表面的基类。
QAbstractVideoSurface类定义视频制作者用于与视频演示表面交互操作的标准接口。您可以将此接口子类化,以接收来自解码媒体或相机等源的视频帧,以执行您自己的处理。

简单来说通过继承QAbstractVideoSurface类,重新实现他的一些虚函数对我们获取的视频帧数据进行处理,存储成我们需要的视频文件
实现代码如下:

#ifndef CAMERAVIDEOSURFACE_H
#define CAMERAVIDEOSURFACE_H#include <QAbstractVideoSurface>
#include <QDebug>
#include "sqldata.h"extern "C"
{
//avcodec:编解码(最重要的库)
#include <libavcodec/avcodec.h>
//avformat:封装格式处理
#include <libavformat/avformat.h>
//swscale:视频像素数据格式转换
#include <libswscale/swscale.h>
//avdevice:各种设备的输入输出
#include <libavdevice/avdevice.h>
//avutil:工具库(大部分库都需要这个库的支持)
#include <libavutil/avutil.h>
#include <libavutil/imgutils.h>
//音频采样数据格式库
#include <libswresample/swresample.h>
}class CameraVideoSurface : public QAbstractVideoSurface
{Q_OBJECT
public:CameraVideoSurface(QObject *parent = NULL);~CameraVideoSurface();void setCameraResolution(const QSize &size);void escEvent();void InitEncoder();
protected:QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const override;bool present(const QVideoFrame &frame) override;
private slots:void cameraStopSlot();
signals:void showFrame(QImage image);
private:    void Encode(AVFrame *frame);    SqlData *pSqlData;int FirstImg;
private:AVFormatContext *pOutputFormatCtx;AVCodecContext *pCodecCtx;AVCodec *pCodec;AVStream *pOutputStream;AVPacket *packet;AVFrame *yuvFrame;QString FileName;QString OutPutFileName;struct SwsContext *image_convert_ctx;   
};#endif // CAMERAVIDEOSURFACE_H
#include "cameravideosurface.h"
#include "allwidget.h"
#include <QDateTime>CameraVideoSurface::CameraVideoSurface(QObject *parent) : QAbstractVideoSurface(parent),pOutputFormatCtx(NULL),pCodec(NULL),pOutputStream(NULL),packet(NULL),yuvFrame(NULL),image_convert_ctx(NULL)
{
//    this->InitEncoder();
}CameraVideoSurface::~CameraVideoSurface()
{av_write_trailer(pOutputFormatCtx);avio_close(pOutputFormatCtx->pb);avformat_close_input(&pOutputFormatCtx);av_frame_free(&yuvFrame);av_packet_free(&packet);avcodec_close(pCodecCtx);
}void CameraVideoSurface::setCameraResolution(const QSize &size)
{this->setNativeResolution(size);
}QList<QVideoFrame::PixelFormat> CameraVideoSurface::supportedPixelFormats
(QAbstractVideoBuffer::HandleType handleType) const
{QList<QVideoFrame::PixelFormat > pixelFormats;pixelFormats.append(QVideoFrame::Format_RGB32);pixelFormats.append(QVideoFrame::Format_YUV420P);return pixelFormats;
}bool CameraVideoSurface::present(const QVideoFrame &frame)
{if(!AllWidget::pLoginWidget->CurUser.isEmpty() && !AllWidget::pSettingWidget->pSettingPath->ImagePath.isEmpty()){//判断 是否有用户登录 是否处于设置路径界面if (frame.isValid()){QVideoFrame cloneFrame(frame);cloneFrame.map(QAbstractVideoBuffer::ReadOnly);QImage image(cloneFrame.bits(), cloneFrame.width(), cloneFrame.height(),QVideoFrame::imageFormatFromPixelFormat(frame.pixelFormat()));image = image.mirrored(true, true);// rgb 转 yuvuint8_t *data[AV_NUM_DATA_POINTERS] = {0};data[0] = (uint8_t *)image.constBits();int linesize[AV_NUM_DATA_POINTERS] = {0};linesize[0] = pCodecCtx->width * 4;sws_scale(image_convert_ctx, data, linesize, 0, pCodecCtx->height,yuvFrame->data, yuvFrame->linesize);// 编码this->Encode(yuvFrame);emit showFrame(image);if(FirstImg == 0){image.save(QString("%1.jpg").arg(FileName));	//保存第一帧图片 用于视频展示列表的封面FirstImg++;}cloneFrame.unmap();return true;}return false;}return false;
}void CameraVideoSurface::InitEncoder()
{FirstImg = 0;av_register_all();avformat_network_init();avcodec_register_all();FileName = AllWidget::pSettingWidget->pSettingPath->VideoPath;QString CurDate = QDateTime::currentDateTime().toString("yyyyMMddhhmmss");FileName = QString("%1/%2").arg(FileName).arg(CurDate);OutPutFileName = QString("%1.h264").arg(FileName);qDebug() << OutPutFileName;QString encoderName = "libx264";//QString rtmpAddress = "rtmp://192.168.1.111/live/livestream";pCodec = avcodec_find_encoder_by_name(encoderName.toStdString().c_str());if(NULL == pCodec){qDebug() <<"查找视频编码器失败!";return;}pCodecCtx = avcodec_alloc_context3(pCodec);if(NULL == pCodecCtx){qDebug() <<"开辟编解码器上下文";return;}// 输入样本参数pCodecCtx->bit_rate = 400000;pCodecCtx->width = 1280/2;pCodecCtx->height = 720/2;pCodecCtx->time_base = {1, 25};pCodecCtx->framerate = {25, 1};pCodecCtx->gop_size = 10;pCodecCtx->max_b_frames = 1;pCodecCtx->qmin = 10;pCodecCtx->qmax = 51;pCodecCtx->pix_fmt = AV_PIX_FMT_YUV420P;if(AV_CODEC_ID_H264 == pCodecCtx->codec_id){av_opt_set(pCodecCtx->priv_data, "preset", "slow", 0);av_opt_set(pCodecCtx->priv_data, "tune", "zerolatency", 0);}// 打开编码器if(avcodec_open2(pCodecCtx, pCodec, NULL) < 0){qDebug() <<"打开编码器失败 !";return;}pOutputFormatCtx = avformat_alloc_context();if(NULL == pOutputFormatCtx){qDebug() <<"视频封装器开辟失败!";return;}AVOutputFormat *outputFormat = av_guess_format(NULL, OutPutFileName.toStdString().c_str(), NULL);if(NULL == outputFormat){qDebug() <<"猜测outputformat失败 !";return;}pOutputFormatCtx->oformat = outputFormat;// oprn urlif(avio_open(&pOutputFormatCtx->pb, OutPutFileName.toStdString().c_str(), AVIO_FLAG_READ_WRITE) < 0){qDebug() <<"打开输出文件失败!";return;}pOutputStream = avformat_new_stream(pOutputFormatCtx, NULL);if(NULL == pOutputStream){qDebug() <<"新建输出流失败 !";return;}// 输出详细信息av_dump_format(pOutputFormatCtx, 0, OutPutFileName.toStdString().c_str(), 1);// 新建数据包packet = av_packet_alloc();if(NULL == packet){qDebug() <<"新建数据包失败 !";return;}// yuvFrame 初始化yuvFrame = av_frame_alloc();if(NULL == yuvFrame){qDebug() <<"开辟AVFrame失败 !";return;}yuvFrame->width = pCodecCtx->width;yuvFrame->height = pCodecCtx->height;yuvFrame->format = pCodecCtx->pix_fmt;// 初始化 image 空间av_image_alloc(yuvFrame->data, yuvFrame->linesize, yuvFrame->width, yuvFrame->height,pCodecCtx->pix_fmt, 32);// 转换上下文image_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height, AV_PIX_FMT_RGB32, pCodecCtx->width,pCodecCtx->height, AV_PIX_FMT_YUV420P,SWS_BICUBIC, NULL, NULL, NULL);if(NULL == image_convert_ctx){qDebug() <<"转换上下文失败 !";return;}// 写封装头if(avformat_write_header(pOutputFormatCtx, NULL) < 0){qDebug() <<"视频封装头写失败 !";return;}   
}// 编码为 h.264
void CameraVideoSurface::Encode(AVFrame *frame)
{static int index = 0;frame->pts = index++;int ret = 0;if((ret = avcodec_send_frame(pCodecCtx, frame)) < 0){qDebug() <<"avcodec_send_frame 失败 !";return;}while(ret >= 0){ret = avcodec_receive_packet(pCodecCtx, packet);if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF){return;}else if (ret < 0){qDebug() <<  "编码时出错";return;}packet->stream_index = 0;av_interleaved_write_frame(pOutputFormatCtx, packet); // write frameav_packet_unref(packet);}
}//跳转至设置界面时调用 提前结束录像 并清空先前设置的路径 present()进程中的视频存储操作不会进行
void CameraVideoSurface::escEvent()
{qDebug()<<"关闭摄像头";av_write_trailer(pOutputFormatCtx);avio_close(pOutputFormatCtx->pb);av_frame_free(&yuvFrame);avcodec_close(pCodecCtx);QString CurDate = QDateTime::currentDateTime().toString("yyyyMMddhhmmss");pSqlData->insert_sourcetable(AllWidget::pLoginWidget->CurUser,CurDate,"video",AllWidget::pSettingWidget->pSettingPath->VideoPath);AllWidget::pSettingWidget->pSettingPath->ImagePath.clear();AllWidget::pSettingWidget->pSettingPath->VideoPath.clear();AllWidget::pSettingWidget->pSettingPath->TimeInterval.clear();
}void CameraVideoSurface::cameraStopSlot()
{qDebug()<<"关闭摄像头";av_write_trailer(pOutputFormatCtx);avio_close(pOutputFormatCtx->pb);   av_frame_free(&yuvFrame);avcodec_close(pCodecCtx);QString CurDate = QDateTime::currentDateTime().toString("yyyyMMddhhmmss");if(!AllWidget::pLoginWidget->CurUser.isEmpty()){pSqlData->insert_sourcetable(AllWidget::pLoginWidget->CurUser,CurDate,"video",AllWidget::pSettingWidget->pSettingPath->VideoPath);}InitEncoder();
}

使用方法:

QVBoxLayout *VBoxLayoutPlay;
QCamera *pCamera;
OpenGLWidget *pOpenGLWidget;
//    QCameraViewfinder *pCameraViewfinder;
CameraVideoSurface *pCameraVideoSurface;
QCameraImageCapture *pCameraImageCapture; //获取摄像头当前帧VBoxLayoutPlay = new QVBoxLayout(this);
pOpenGLWidget = new OpenGLWidget();
pCameraVideoSurface = new CameraVideoSurface();
pCamera = new QCamera(this);
pCameraImageCapture = new QCameraImageCapture(pCamera);VBoxLayoutPlay->setGeometry(QRect(38, 20, 635, 341));
VBoxLayoutPlay->setContentsMargins(0, 0, 0, 0);
pCamera->setViewfinder(pCameraVideoSurface);
VBoxLayoutPlay->addWidget(pOpenGLWidget);
pCamera->start;connect(pCameraVideoSurface, SIGNAL(showFrame(QImage)), pOpenGLWidget, SLOT(showCameraFrameSlot(QImage)));
connect(pCameraImageCapture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(capture_slot(int,QImage)));

原文链接: https://blog.csdn.net/qq_34623621/article/details/106453823.

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 机器学习 · 总览篇 III 统计推断: 频率学派和贝叶斯学派

    统计推断作为重要的机器学习基础,对它的了解十分必要,否则我们做机器学习只是在黑盒操作,对其原理和结果难以解释本文首发于我的知乎专栏《机器怎么学习》中 机器学习总览篇(3) 统计推断: 频率学派和贝叶斯学派,转载请保留链接 😉一、机器学习和统计推断的关系 这一小节谈…...

    2024/4/16 5:22:58
  2. ajax跨域的基本流程

    AJAX AJAX(Asynchronous JavaScript and XML),意思就是用JavaScript执行异步网络请求。 主要可以通过架设代理服务器,JSONP和CORS三种方案实现跨域 用JavaScript写一个完整的AJAX代码并不复杂,但是需要注意:AJAX请求是异步执行的,也就是说,要通过回调函数获得响应。创建…...

    2024/5/6 7:23:52
  3. 进军Python全栈开发(01)

    进军Python全栈开发(01) 初识Python Python简介 Python的历史1989年圣诞节:Guido von Rossum开始写Python语言的编译器。 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”…...

    2024/4/16 5:22:38
  4. 学习笔记 —— HTML 5 新标签新数据知识归纳整理

    | <article> | 定义 HTML 文档的文章区域块 | | <figure> | 定义 HTML 文档的流体区域块 | | <figcaption> | 定义 HTML 文档的流标题部块 | <header>定义 HTML 文档的头部区域块</header> <section>定义 HTML 文档的区段区域块<…...

    2024/5/6 16:22:21
  5. 【游戏AI】1 - 什么是AI

    一、学术AI 为了讲述这个故事,我将学术AI分为三个时期:早期时代,象征时代,自然计算(统计)时代。当然,这是一个过度粗略的简化,它们在某种程度上都有重叠,但我发现这是一个有用的区别。如果要收集一份更细致和充实的报告,见文章《Max Lungarella, Fumiya Iida, Josh B…...

    2024/4/23 17:35:58
  6. web测试工具总结

    纯粹的手工测试早已不满足如今的项目需求,各种测试工具的应用早已成为普遍趋势。如何选取合适的工具来完成对应的测试工作?本文将针对Web测试,列举 一些推荐的测试工具,并加以简单介绍。(每个工具的实际使用都可做一大篇文章,这边仅简要介绍,不包含具体使用)1、Web开发…...

    2024/4/25 18:54:48
  7. Servlet入门详解(包含Tomcat 的安装使用)

    简单的JavaWeb工程 首先创建一个新工程:选择:输入工程名字后点击Finish创建一个简单的Hello world文件输入名字:在文件中输入: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Hello</title&…...

    2024/4/16 5:23:29
  8. leetcode 验证二叉搜索树 python3

    思路1:递归判断是否满足条件, 传递变化的最大最小值 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def is_val(self,root, min_v, …...

    2024/4/16 5:23:44
  9. 逆波兰计算器的实现与分析

    图为https://www.bilibili.com/video/BV16t411g7wa?p=37视频中讲师的分析,实现代码如下: 在这里插入代码片package stack;import java.util.ArrayList; import java.util.List; import java.util.Stack;public class PolandNo {public static void main(String[] args) {// …...

    2024/4/18 19:47:41
  10. VMware虚拟机中安装UOS系统详细教程

    VMware虚拟机中安装UOS系统详细教程 工具 VMware-workstationVMware Pro 14 #其他版本也可以 UOS系统镜像 #官网下载地址:https://www.chinauos.com 安装图文教程 1.在VM虚拟机中创建新的虚拟机2.选择“自定义”,下一步3.默认下一步4.选择“稍后安装操作系统”,下一步5.操作…...

    2024/4/1 2:28:39
  11. 网络原理——传输层协议UDP,TCP

    传输层负责数据可以从发送端传输到接收端一.端口号端口号标识了一个主机上进行通信的不同的应用程序在TCP/IP协议中,用 “源IP”,“源端口号”,“目的IP”,“目的端口号”,“协议号”这样一个五元组 来标识一个通信端口号范围划分: 1.0-1023:知名端口号,HTTP,FTP,SSH…...

    2024/4/16 5:23:49
  12. optee的异步异常向量表分析

    文章目录1、 optee中的异步异常中断向量表thread_excp_vect2、elx_irq、elx_fiq中断的处理:foreign和native 以thread_a64.S为例,thread_a32.S暂不分析 1、 optee中的异步异常中断向量表thread_excp_vect #define INV_INSN 0.section .text.thread_excp_vect.align 11, INV_I…...

    2024/4/16 5:22:58
  13. 什么是线程死锁?如何避免死锁?

    线程死锁描述的是这样一种情况:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁…...

    2024/3/28 18:31:31
  14. Web_java script_Date日期格式化方法

    var date=new Date();console.log(date.toString());//标准时间字符串console.log(date.valueOf());//距离1970年毫秒值 console.log(date.toDateString());//拿出标准时间字符串中日期部分console.log(date.toTimeString());//拿出标准时间字符串中的时间部分console.log(dat…...

    2024/4/16 5:23:54
  15. hive基础

    文章目录一.什么是Hive?二.Hive体系架构三.hive操作四.hive数据类型和数据结构五.使用hive建表1.创建内部表2.Hive建表语句解析3. Hive建表高阶语句 - CTAS and WITH4. 创建临时表,`TEMPORARY`关键字修饰5. 表操作 - 删除/修改表6. 装载数据:LOAD六. Hive分区(Partition) 一…...

    2024/4/19 20:00:55
  16. 02_TP的URL模式

    服务器文件路径 tp5/application/test/controller/Fun.php application/test= test模块 controller/Fun.php=Fun控制器 文件内的Function eat是操作 $who是参数名 老王’是值 http://serverName/index.php/模块/控制器/操作/参数/值…; <?php namespace app\test\controlle…...

    2024/5/5 13:24:42
  17. 理论:详解Linus的目录和文件管理

    前言1 Linux目录结构1.1树形目录结构1.2 常见子目录的作用2 查看文件内容命令2.1 查看文件内容cat命令2.2 查看文件内容more命令2.3 查看文件内容less命令2.4 查看文件内容head,tail命令3 统计和检索文件命令3.1 统计文件内容wc命令3.2 检索和过滤文件内容grep命令4 备份恢复文…...

    2024/5/5 9:30:30
  18. PAT甲级 A1108

    PAT甲级 A1108 题目详情 1108 Finding Average (20分) The basic task is simple: given N real numbers, you are supposed to calculate their average. But what makes it complicated is that some of the input numbers might not be legal. A legal input is a real numb…...

    2024/4/16 5:23:54
  19. 带注释 实验7-1-8 输出数组元素 (15分)

    实验7-1-8 输出数组元素 (15分) 本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。 输入格式: 输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。 输出格式: 顺次计算后项减前项之差,并按每行…...

    2024/5/5 12:56:05
  20. 鲁棒随机优化(Robust Stochastic Optimization)和RSOME

    鲁棒随机优化(Robust Stochastic Optimization)和RSOME前言1. RSO2. 简单示例2.1 单产品的报童问题(one-product newsvendor problem)2.2 Wasserstein 模糊集2.3 测试求解总结 前言 记录一下鲁棒优化的学习内容。鲁棒优化和随机优化是不确定性优化中常用的两种方法。其中随机…...

    2024/4/1 2:28:34

最新文章

  1. 如何选择Python测试框架:pytest和unittest

    unittest unittest是Python标准库中自带的测试框架&#xff0c;它遵循了xUnit风格&#xff0c;即将测试组织成类和方法。 使用unittest需要遵循一定规则&#xff1a; 必须要有测试类&#xff0c;且必须继承unittest.TestCase测试方法必须以test开头文件模块也使用test开头命…...

    2024/5/6 17:32:40
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. MySQL分库分表的方式有哪些

    目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展&#xff0c;那这个网站流量也会增加&#xff0c;数据的压力也会随之而…...

    2024/4/30 15:23:23
  4. 手机无线投屏到windows11电脑

    1 安装无线投影组件 2 电脑端打开允许其他设备投影的开关 3 手机找到投屏选项 4 手机搜索可用设备连接即可 这里的官方文档给的不太好,给了一些让人眼花撩乱的信息,以下是经过整合的有效信息...

    2024/5/6 9:26:55
  5. 最新AI智能系统ChatGPT网站源码V6.3版本,GPTs、AI绘画、AI换脸、垫图混图+(SparkAi系统搭建部署教程文档)

    一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…...

    2024/5/5 8:34:25
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/4 23:55:01
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57