当前位置: 首页 > news >正文

GStreamer —— 2.13、Windows下Qt加载GStreamer库后运行 - “教程13:播放控制“(附:完整源码)

运行效果(音频)

请添加图片描述

简介

     上一个教程演示了GStreamer工具。本教程介绍视频播放控制。快进、反向播放和慢动作都是技术 统称为 Trick Modes,它们都有一个共同点 修改 Normal playback rate。本教程介绍如何实现 这些效果并在交易中添加了帧步进。特别是,它 显示:

          • 如何更改播放速率,比正常更快和更慢, 前进和向后。

          • 如何逐帧推进视频

     快进是一种以高于 它的正常(预期)速度;而慢动作使用低于 预期的那个。反向播放执行相同的作,但向后播放, 从流的结尾到开头。所有这些技术所做的只是更改播放速率,这是一个变量 等于 1.0 表示正常播放,大于 1.0(绝对值) 对于快速模式,对于慢速模式,低于 1.0(绝对值), positive 表示正向播放,negative 表示反向播放。GStreamer 提供了两种机制来更改播放速率:步进 事件 (Events) 和查找事件 (Seek Events)。Step Events 允许跳过给定数量的 媒体,除了更改后续播放速率(仅为正数 值)。此外,Seek Events 还允许跳转到 流式传输并设置正播放速率和负播放速率。

GStreamer相关运行库
INCLUDEPATH += D:/Software/GStreamer/1.0/mingw_x86_64/include/gstreamer-1.0/gst
INCLUDEPATH += D:/Software/GStreamer/1.0/mingw_x86_64/include
INCLUDEPATH += D:/Software/GStreamer/1.0/mingw_x86_64/include/gstreamer-1.0
INCLUDEPATH += D:/Software/GStreamer/1.0/mingw_x86_64/include/glib-2.0
INCLUDEPATH += D:/Software/GStreamer/1.0/mingw_x86_64/lib/glib-2.0/includeLIBS += D:/Software/GStreamer/1.0/mingw_x86_64/lib/gstreamer-1.0.lib
LIBS += D:/Software/GStreamer/1.0/mingw_x86_64/lib/glib-2.0.lib
LIBS += D:/Software/GStreamer/1.0/mingw_x86_64/lib/gobject-2.0.lib

完整源码
#include <string.h>
#include <stdio.h>
#include <gst/gst.h>#ifdef __APPLE__
#include <TargetConditionals.h>
#endiftypedef struct _CustomData
{GstElement *pipeline;GstElement *video_sink;GMainLoop *loop;gboolean playing;             /* 播放或暂停 */gdouble rate;                 /* 当前播放速率(可以为负) */
} CustomData;/* Send seek event to change rate */
static void
send_seek_event (CustomData * data)
{gint64 position;GstEvent *seek_event;/* Obtain the current position, needed for the seek event */if (!gst_element_query_position (data->pipeline, GST_FORMAT_TIME, &position)) {g_printerr ("Unable to retrieve current position.\n");return;}/* Create the seek event */if (data->rate > 0) {seek_event =gst_event_new_seek (data->rate, GST_FORMAT_TIME,(GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE), GST_SEEK_TYPE_SET,position, GST_SEEK_TYPE_END, 0);} else {seek_event =gst_event_new_seek (data->rate, GST_FORMAT_TIME,GstSeekFlags(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE), GST_SEEK_TYPE_SET, 0,GST_SEEK_TYPE_SET, position);}if (data->video_sink == NULL) {/* If we have not done so, obtain the sink through which we will send the seek events */g_object_get (data->pipeline, "video-sink", &data->video_sink, NULL);}/* Send the event */gst_element_send_event (data->video_sink, seek_event);g_print ("Current rate: %g\n", data->rate);
}/* 处理键盘输入 */
static gboolean
handle_keyboard (GIOChannel * source, GIOCondition cond, CustomData * data)
{gchar *str = NULL;if (g_io_channel_read_line (source, &str, NULL, NULL, NULL) != G_IO_STATUS_NORMAL) { return TRUE; }switch (g_ascii_tolower (str[0])){case 'p':data->playing = !data->playing;gst_element_set_state (data->pipeline, data->playing ? GST_STATE_PLAYING : GST_STATE_PAUSED);g_print ("Setting state to %s\n", data->playing ? "PLAYING" : "PAUSE"); break;case 's':if (g_ascii_isupper (str[0])){data->rate *= 2.0;}else{data->rate /= 2.0;}send_seek_event (data); break;case 'd':data->rate *= -1.0; send_seek_event (data);  break;case 'n':if (data->video_sink == NULL){/* If we have not done so, obtain the sink through which we will send the step events */g_object_get (data->pipeline, "video-sink", &data->video_sink, NULL);}gst_element_send_event (data->video_sink,gst_event_new_step (GST_FORMAT_BUFFERS, 1, ABS (data->rate), TRUE,FALSE));g_print ("Stepping one frame\n");break;case 'q':g_main_loop_quit (data->loop);break;default:break;}g_free (str);return TRUE;
}int tutorial_main (int argc, char *argv[])
{/* 初始化GStreamer */gst_init (&argc, &argv);/* 初始化自定义数据 */CustomData data;memset (&data, 0, sizeof (data));/* 输出使用方式 */g_print ("USAGE: Choose one of the following options, then press enter:\n"" 'P' to toggle between PAUSE and PLAY\n"" 'S' to increase playback speed, 's' to decrease playback speed\n"" 'D' to toggle playback direction\n"" 'N' to move to next frame (in the current direction, better in PAUSE)\n"" 'Q' to quit\n");/* 构建管道 */data.pipeline =gst_parse_launch("playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm", NULL);/* 增加键盘输入以进行控制 */
#ifdef G_OS_WIN32GIOChannel *io_stdin = g_io_channel_win32_new_fd (fileno (stdin));
#elseGIOChannel *io_stdin = g_io_channel_unix_new (fileno (stdin));
#endifg_io_add_watch (io_stdin, G_IO_IN, (GIOFunc) handle_keyboard, &data);/* 开始播放 */GstStateChangeReturn ret = gst_element_set_state (data.pipeline, GST_STATE_PLAYING);if (ret == GST_STATE_CHANGE_FAILURE){g_printerr ("Unable to set the pipeline to the playing state.\n");gst_object_unref (data.pipeline); return -1;}data.playing = TRUE;data.rate = 1.0;/* 创建GLib主循环并将其设置为运行 */data.loop = g_main_loop_new (NULL, FALSE);g_main_loop_run (data.loop);/* 释放资源 */g_main_loop_unref (data.loop);g_io_channel_unref (io_stdin);gst_element_set_state (data.pipeline, GST_STATE_NULL);if (data.video_sink != NULL)gst_object_unref (data.video_sink);gst_object_unref (data.pipeline);return 0;
}int main (int argc, char *argv[])
{
#if defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONEreturn gst_macos_main ((GstMainFunc) tutorial_main, argc, argv, NULL);
#elsereturn tutorial_main (argc, argv);
#endif
}

关注

笔者 - jxd

相关文章:

GStreamer —— 2.13、Windows下Qt加载GStreamer库后运行 - “教程13:播放控制“(附:完整源码)

运行效果(音频) 简介 上一个教程演示了GStreamer工具。本教程介绍视频播放控制。快进、反向播放和慢动作都是技术 统称为 Trick Modes&#xff0c;它们都有一个共同点 修改 Normal playback rate。本教程介绍如何实现 这些效果并在交易中添加了帧步进。特别是&#xff0c;它 显…...

推荐一款好用在线免费软件工具箱-传道软件箱

推荐一款好用在线免费软件工具箱-传道软件箱 传道软件箱 传道软件箱是一款在线免费软件工具箱&#xff0c;无需登录&#xff0c;无需费用&#xff0c;用完就走的软件工具&#xff0c;包有BMI计算、倒计时、单位转换、密码生成器、摩斯电码、代码编辑器、计算器、快递查询、二维…...

机器学习数学基础:40.结构方程模型(SEM)中卡方值与卡方自由度比

结构方程模型&#xff08;SEM&#xff09;中卡方值与卡方自由度比教程 在结构方程模型分析里&#xff0c;卡方值和卡方自由度比是评估模型拟合程度的重要指标&#xff0c;下面为大家详细介绍。 一、卡方值&#xff08;CMIN&#xff09; &#xff08;一&#xff09;基本概念与…...

【JavaEE进阶】Spring AOP详解

目录 &#x1f343;什么是AOP &#x1f333;什么是Spring AOP &#x1f334;上手Spring AOP &#x1f6a9;引入依赖 &#x1f6a9;编写AOP程序 &#x1f38d;Spring AOP核心概念 &#x1f6a9;切点(Pointcut) &#x1f6a9;连接点(Join Point) &#x1f6a9;通知(Advi…...

Docker 的基本概念和优势,以及在应用程序开发中的实际应用

Docker 是一种开源的容器化平台&#xff0c;让开发人员能够打包、发布和运行应用程序在轻量级、可移植的容器中。Docker 容器包含应用程序的代码、运行时环境、系统工具、系统库等&#xff0c;使得应用程序能在任何环境中快速部署和运行。 Docker 的基本概念包括以下几点&…...

python flask

安装 pip install flask 查看版本 pip show flask 启动服务器 设置环境变量&#xff0c;在控制台执行命令&#xff0c;app.py是创建的文件名 windows set FLASK_APPapp.py mac/linux export FLASK_APPapp.py 启动内置web服务器&#xff0c;注意要进入到app.py所在的文…...

关于tomcat使用中浏览器打开index.jsp后中文显示不正常是乱码,但英文正常的问题

如果是jsp文件就在首行加 “<% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %>” 如果是html文件 在head标签加入&#xff1a; <meta charset"UTF-8"> 以jsp为例子&#xff0c;我们…...

双向选择排序算法

一 概述 双向选择排序(又称鸡尾酒选择排序)是选择排序的优化版本,核心改进在于每轮遍历同时确定未排序部分的最小值和最大值,分别交换到序列两端,从而减少遍历轮数。 二 时间复杂度 时间复杂度为(O(n^2)),但实际比较次数约为标准选择排序的 (1/2)。 三 C++实现代…...

P8662 [蓝桥杯 2018 省 AB] 全球变暖--DFS

P8662 [蓝桥杯 2018 省 AB] 全球变暖--dfs 题目 解析讲下DFS代码 题目 解析 这道题的思路就是遍历所有岛屿&#xff0c;判断每一块陆地是否会沉没。对于这种图的遍历&#xff0c;我们首先应该想到DFS。 代码的注意思想就是&#xff0c;在主函数中遍历找出所有岛屿&#xff0c…...

2-kafka集群环境搭建

本文介绍kafka集群环境的搭建&#xff0c;我利用三个虚拟机搭建。文中我一步步演示了过程中可能会碰到的问题&#xff0c;在文章的最后&#xff0c;利用jmx&#xff0c;能看到详细的各个kafka broker的运行情况。 -1、环境 ubuntu &#xff1a;22.04-ltskafka: 2.8java: 17 …...

ROS2与Navigation2入门教程:构建与安装Nav2

Navigation2&#xff08;Nav2&#xff09;是ROS2中用于机器人导航的核心框架&#xff0c;支持路径规划、避障、SLAM等功能。本教程将详细介绍Nav2的安装与构建方法&#xff0c;涵盖二进制安装、源码编译及Docker部署等多种方式&#xff0c;适用于不同开发需求。 一、通过APT安…...

MySQL入门手册

MySQL入门手册&#xff1a;从零开始掌握数据库管理 &#x1f4d6; 一、MySQL是什么&#xff1f; MySQL 是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典MySQL AB公司开发&#xff0c;现隶属于Oracle旗下。它使用**结构化查询语言&#xff…...

深度学习算法实战——风格迁移(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域介绍 风格迁移&#xff08;Style Transfer&#xff09;是深度学习中的一个热门应用&#xff0c;旨在将一幅图像的风格迁移到…...

基于SpringBoot的智能问诊系统设计与隐私保护策略

通过SpringBoot框架&#xff0c;我们可以快速搭建一个智能问诊系统&#xff0c;为用户提供便捷的线上医疗服务。然而&#xff0c;在系统设计和实现过程中&#xff0c;如何保障用户的隐私和数据安全&#xff0c;始终是一个亟需关注的问题。本文将探讨基于SpringBoot的智能问诊系…...

开发ai模型最佳的系统是Ubuntu还是linux?

在 AI/ML 开发中&#xff0c;​Ubuntu 是更优选的 Linux 发行版&#xff0c;原因如下&#xff1a; ​1. 开箱即用的 AI 工具链支持 Ubuntu 预装了主流的 AI 框架&#xff08;如 TensorFlow、PyTorch&#xff09;和依赖库&#xff0c;且通过 apt 包管理器可快速部署开发环境。 提…...

Vue 3 ref(new Map()) 无法触发watch

现象 const map ref(new Map()); 通过 map.value.set(k, v); 不能触发watch 下面验证&#xff0c;map.value.set 并不能触发watch 的监听 代码 <script setup lang"ts"> import { ref, triggerRef, watch } from vue;const map ref(new Map<string, R…...

NoteGen是一款开源跨平台的 AI 笔记应用,专注于 recording 和 writing ,基于 Tauri 开发

一、软件介绍 文末提供程序和源码下载 NoteGen 是一款专注于记录和写作的跨平台 AI 笔记应用&#xff0c;基于 Tauri 开发。NoteGen 的核心理念是将记录、写作和 AI 结合使用&#xff0c;三者相辅相成。记录功能可以帮助用户快速捕捉和整理碎片化知识。整理功能是连接记录和写…...

repo访问gerrit.googlesource失败

编译openharmony的时候&#xff0c;repo阶段碰到一个问题&#xff0c;建议不要通过 apt install安装&#xff0c;里面的源来自google curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/repo chmod 755 ~/repo 执行类似这样的操作 repo init -u gitgitee.com:…...

IDEA中Git版本回退终极指南:Reset与Revert双方案详解

目录 前言一、版本回退前置知识二、Reset方案&#xff1a;整体改写历史1、IDEA图形化操作&#xff08;推荐&#xff09;1.1、查看提交历史1.2、选择目标版本1.3、选择回退模式1.3.1、Soft&#xff08;推荐&#xff09;1.3.2、Mixed1.3.3、Hard&#xff08;慎用&#xff09;1.3.…...

【系统架构设计师】体系结构复审

目录 1. 说明2. 例题2.1 例题1 1. 说明 1.体系结构设计、文档化和复审是一个迭代过程。2.从这个方面来说&#xff0c;在一个主版本的软件体系结构分析之后&#xff0c;要安排一次由外部人员&#xff08;用户代表和领域专家&#xff09;参加的复审。3.鉴于体系结构文档标准化以…...

Unity之如何实现哔哩哔哩直播弹幕游戏

前言 什么是直播间互动? 当我们使用哔哩哔哩进行直播或者观看视频时,我们可以通过接入哔哩哔哩提供的 直播&互动玩法SDK,让直播和视频可以与Unity3D游戏客户端或者游戏服务器进行互动。 环境要求 Unity 2020.x或更高版本 依赖库:Newtonsoft Json Unity Package 在P…...

视觉图像处理

在MATLAB中进行视觉图像处理仿真通常涉及图像增强、滤波、分割、特征提取等操作。以下是一个分步指南和示例代码,帮助您快速入门: 1. MATLAB图像处理基础步骤 1.1 读取和显示图像 % 读取图像(替换为实际文件路径) img = imread(lena.jpg); % 显示原图 figure; subplot(2…...

学习LED驱动知识(二)

ppt来自B站周老师 使用普通元器件或者电源芯片构建电路驱动LED 1.电阻降压限流设计 案例一&#xff1a; USB供电电压为5V&#xff0c;因为LED的Vf为3v&#xff0c;所以电路只能6个LED并联&#xff0c;直接跟电源并联电流太大&#xff0c;LED会过流导致断路。所以要先串联一个…...

011---UART协议的基本知识(一)

1. 摘要 文章为学习记录。主要介绍 UART 协议的概述、物理层、协议层、关键参数。 2. UART概述 通用异步收发传输器&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;&#xff0c;通常称作UART&#xff08;串口&#xff09;&#xff0c;是一种异步****串…...

如何选择开源向量数据库

文章目录 评估维度查询性能索引与存储扩展性数据管理能力生态支持 常见向量数据库对比 评估维度 选择开源向量数据库时&#xff0c;需要综合考虑查询性能、数据规模、索引构建速度、生态支持等多个因素&#xff0c;以下是关键的评估维度&#xff1a;选择开源向量数据库时&…...

SpringBoot项目配置文件

SpringBoot项目提供了多种属性配置方式&#xff08;properties、yaml、yml&#xff09; yml配置文件 使用Apifox可以方便开发接口、前端测试等 工程搭建&#xff1a; 1.创建SpringBoot工程&#xff0c;并引入web开发起步依赖、mybatis、mysql驱动、lombok 2.创建数据库表&am…...

L33.【LeetCode笔记】循环队列(数组解法)

目录 1.题目 2.分析 方法1:链表 尝试使用单向循环链表模拟 插入节点 解决方法1:开辟(k1)个节点 解决方法2:使用变量size记录队列元素个数 获取队尾元素 其他函数的实现说明 方法2:数组 重要点:指针越界的解决方法 方法1:单独判断 方法2:取模 3.数组代码的逐步实现…...

前端知识点---库和包的概念

1. 什么是库&#xff08;Library&#xff09;&#xff1f; 库&#xff08;Library&#xff09; 是一组可复用的代码集合&#xff0c;提供特定功能&#xff08;如网络请求、UI 组件、数据处理等&#xff09;。 特点&#xff1a; 只是代码的集合&#xff0c;没有完整的应用结构…...

【CSS3】筑基篇

目录 复合选择器后代选择器子选择器并集选择器交集选择器伪类选择器 CSS 三大特性继承性层叠性优先级 背景属性背景色背景图背景图平铺方式背景图位置背景图缩放背景图固定背景复合属性 显示模式显示模式块级元素行内元素行内块元素 转换显示模式 结构伪类选择器结构伪类选择器…...

CentOS7 安装docker并配置镜像加速

一、Yum 安装docker【不推荐】 /var/lib/docker 路径主要用于存储容器数据&#xff0c;在使用和操作过程中数据量会逐渐增加。因此&#xff0c;在生产环境中&#xff0c;建议为 /var/lib/docker 单独挂载一个硬盘。也可以使用软连接的方式 1.1 安装必要的一些系统工具 yum i…...

【Go每日一练】统计字符出现的次数

&#x1f47b;创作者&#xff1a;丶重明 &#x1f47b;创作时间&#xff1a;2025年3月9日 &#x1f47b;擅长领域&#xff1a;运维 目录 1.&#x1f636;‍&#x1f32b;️题目&#xff1a;2.&#x1f636;‍&#x1f32b;️资源&#xff1a;3.&#x1f636;‍&#x1f32b;️代…...

正向代理与反向代理

代理: 通常称为代理、代理服务器或 Web 代理&#xff0c;代理一般是指正向代理&#xff0c;是位于一组客户端计算机之前的服务器。当这些计算机向 Internet 上的站点和服务发出请求时&#xff0c;代理服务器将拦截这些请求&#xff0c;然后代表客户端与 Web服务器进行通信&…...

报表DSL优化,享元模式优化过程,优化效果怎么样?

报表DSL优化与享元模式应用详解 一、报表DSL优化 1. 问题背景 报表系统通常使用领域特定语言&#xff08;DSL&#xff09;定义模板结构、数据绑定规则及样式配置。随着复杂度提升&#xff0c;DSL可能面临以下问题&#xff1a; 冗余配置&#xff1a;重复定义样式、布局或数据源…...

双击PPT文件界面灰色不可用,需要再次打开该PPT文件才能正常打开

双击PPT文件界面灰色不可用&#xff0c;需要再次打开该PPT文件才能正常打开 1. 软件环境⚙️2. 问题描述&#x1f50d;3. 解决方法&#x1f421;解决步骤 4. 结果预览&#x1f914; 1. 软件环境⚙️ Windows10 或 Windows11 专业版64位&#xff0c;安装MotionGo软件&#xff08…...

学习前置知识第18和19天

今天要做什么&#xff1f; 1&#xff1a;显示数字要求格式 2&#xff1a;无符号除法指令:div 3&#xff1a;前面用vhd和img等格式进行系统界面启动&#xff0c;详细了解多种镜像格式文件的区别 一&#xff1a;显示数字要求格式 屏幕上显示的数字格式,三个颜色编码和数字属性 1&…...

C#运算符详解

一、运算符分类与功能‌ 1‌.算术运算符‌ 基本运算‌&#xff1a;&#xff08;加&#xff09;、-&#xff08;减&#xff09;、*&#xff08;乘&#xff09;、/&#xff08;除&#xff09;、%&#xff08;取模&#xff09; int a 10 / 3; // 结果为3&#xff08;整数除…...

生成任务,大模型

一个生成项目 输入&#xff1a;文字描述&#xff08;但是给的数据集是一串数字&#xff0c;id&#xff0c;ct描述&#xff0c;医生描述&#xff09; 输出&#xff1a;诊断报告 一、数据处理 import pandas as pd #处理表格数据pre_train_file "data/train.csv"tr…...

下载Hugging Face模型的几种方式

1.网页下载 直接访问Hugging Face模型页面&#xff0c;点击“File and versions”选项卡&#xff0c;选择所需的文件进行下载。 2.使用huggingface-cli 首先&#xff0c;安装huggingface_hub: pip install huggingface_hub 然后&#xff0c;使用以下命令下载模型&#xff1…...

【Elasticsearch入门到落地】9、hotel数据结构分析

接上篇《8、RestClient操作索引库-基础介绍及导入demo》 上一篇我们介绍了RestClient的基础&#xff0c;并导入了使用Java语言编写的RestClient程序Demo以及将要分析的数据库。本篇我们就要分析导入的宾馆数据库tb_hotel表结构的具体含义&#xff0c;并分析如何建立其索引库。 …...

【由技及道】量子构建交响曲:Jenkinsfile流水线的十一维编程艺术【人工智障AI2077的开发日志008】

摘要&#xff1a;当代码提交触发时空涟漪&#xff0c;当构建流水线穿越量子维度——欢迎来到自动化构建的终极形态。本文将揭示如何用Jenkinsfile编写量子构建乐章&#xff0c;让每次代码提交都成为跨维度交响乐的音符。 动机&#xff1a;构建系统的量子哲学 “主人啊&#xff…...

Unity开发——CanvasGroup组件介绍和应用

CanvasGroup是Unity中用于控制UI的透明度、交互性和渲染顺序的组件。 一、常用属性的解释 1、alpha&#xff1a;控制UI的透明度 类型&#xff1a;float&#xff0c;0.0 ~1.0&#xff0c; 其中 0.0 完全透明&#xff0c;1.0 完全不透明。 通过调整alpha值可以实现UI的淡入淡…...

jenkins配置连接k8s集群

jenkins配置连接k8s集群 前言 我这边jenkins是在一个服务器里面&#xff0c;k8s集群在其他服务器&#xff0c;实现连接 首先jenkins下载有k8s插件 进入配置页面 获取k8s-api-server地址 对应k8s服务器执行 kubectl config view --minify -o jsonpath{.clusters[0].cluste…...

Linux 入门:常用命令速查手册

目录 一.指令 1.pwd&#xff08;显示所在路径&#xff09; 2.ls&#xff08;列出所有子目录与文件&#xff09; 3.touch&#xff08;创建文件&#xff09; 4.mkdir&#xff08;创建目录&#xff09; 5.cd&#xff08;改变所处位置&#xff09; 6.rm&#xff08;删除&…...

【VUE】day01-vue基本使用、调试工具、指令与过滤器

【VUE】day01-vue基本使用、调试工具、指令与过滤器 1. 什么是Vue2. Vue的基本使用 1. 什么是Vue Vue&#xff08;Vue.js&#xff09;是一个用于构建用户界面的渐进式 JavaScript 框架&#xff0c;其核心设计理念是“自底向上逐层应用”&#xff0c;既能作为轻量级库增强现有项…...

deepseek为什么要开源

一、生态位的抢占与锁定&#xff1a;以 JDK 版本为例​ 在软件开发的世界里&#xff0c;生态位的抢占和先入为主的效应十分显著。就拿 Java 开发中的 JDK 版本来说&#xff0c;目前大多数开发者仍在广泛使用 JDK8。尽管 JDK17 和 JDK21 已经推出&#xff0c;且具备更多先进特性…...

软考 中级软件设计师 考点知识点笔记总结 day02

文章目录 3、计算机系统组成 &#xff08;五大部件&#xff09;3.1、主存储器3.2、运算器3.3、控制器3.4、Flynn分类法 4、指令系统4.1、七种寻址方式4.2、指令的流水处理4.3、流水线的计算 上一篇文章 软考知识点 day01 3、计算机系统组成 &#xff08;五大部件&#xff09; …...

Redis Cluster 客户端定位分片全解析:哈希槽与动态路由机制

Redis Cluster客户端定位分片全解析&#xff1a;哈希槽与动态路由机制 一、引言 Redis Cluster通过分片技术将数据分散存储在多个节点&#xff0c;实现水平扩展。客户端如何快速定位目标分片&#xff1f;本文将深入解析哈希槽算法、路由逻辑及实战技巧。 二、核心原理&#…...

基于Python+Vue的智能服装商城管理系统的设计与实现

&#x1f457; 基于PythonVue的智能服装商城管理系统的设计与实现 电商级解决方案&#xff1a;全栈技术融合 智能推荐系统 多维度数据分析 项目亮点&#xff1a;课程设计优选 | 企业级架构规范 | 完整电商功能闭环 | 毕业设计选择 &#x1f310; 在线资源速览 类别地址访问方…...

提升Web可访问性的10个关键实践

在当今互联网时代&#xff0c;确保网站的可访问性&#xff08;Accessibility&#xff09;已经成为开发者和设计师的重要任务之一。Web可访问性不仅有助于残障用户更好地访问和使用网站&#xff0c;还能提升整体用户体验。本文将介绍10个关键的Web可访问性实践&#xff0c;帮助你…...

基于DeepSeek的智慧医药系统(源码+部署教程)

运行环境 智慧医药系统运行环境如下&#xff1a; 前端&#xff1a; HTMLCSS后端&#xff1a;Java AIGCDeepseekIDE工具&#xff1a;IDEA技术栈&#xff1a;Springboot HTMLCSS MySQL 主要角色 智慧医药系统主要分为两个角色。 游客 尚未进行注册和登录。具备登录注册、…...