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

本地搭建全网可访问的开源音乐服务器Melody结合内网穿透随时听歌

文章目录

    • 前言
    • 1. 添加镜像源
    • 2. 本地部署Melody
    • 3. 本地访问与使用演示
    • 4. 安装内网穿透
    • 5. 配置Melody公网地址
    • 6. 配置固定公网地址

前言

嗨,各位音乐发烧友们!今天我要带你们解锁一个超酷的新技能——在香橙派Zero3上搭建自己的在线音乐平台,并通过cpolar内网穿透实现远程访问。是不是听起来就让人兴奋不已?别担心操作复杂,我们一步步来,保证让你也能成为私人音乐库的DIY高手!

在这个音乐无处不在的时代,手机里的歌单成了每个人的私有宝藏,但管理起来却头疼不已,更别提随时随地享受音乐了。想听首歌还得忍受广告和昂贵的会员费?那可不行!如果你是技术大神或是对未来科技充满好奇的新手小白,自己动手打造一套私人在线音乐平台绝对是你的必选项目!

Melody是一款开源免费的个人音乐平台,不仅能播放各大网站上的歌曲,还能轻松管理本地或云盘中的音乐资源。而香橙派Zero3则是一台性能稳定、功耗极低的小主机,非常适合长时间运行各种服务。想象一下,把它放在家里像路由器一样24小时在线,无论你身处何方,都能随时享受你的私人音乐库!准备好了吗?让我们开始吧!

image-20241129150242043

1. 添加镜像源

我这里演示的环境是已经刷好CasaOS的香橙派Zero3小主机。

不知道如何操作的可以看下这篇教程:[香橙派Orange Pi zero3如何刷CasaOS轻NAS系统](香橙派Orange Pi zero3刷CasaOS轻NAS系统与远程浏览本地文档或影视资源_哔哩哔哩_bilibili)

首先,我们需要在浏览器中输入香橙派ip地址(在路由器中查看名为orangepizero3的就是),进入CasaOS管理界面。

然后进入终端,使用root账号密码登录。

fc4cd94f4cc0ce7c2b2cf581ea88f37

进入终端后执行下方命令:

nano /etc/docker/daemon.json

image-20241012154915187

在编辑器中输入新的镜像源地址:

{
"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"
]
}

image-20241012155042798

然后按Crtl+X键保存这个镜像源,退出编辑器回到终端后执行下方命令重新启动docker服务:

systemctl restart docker

image-20241012155119804

2. 本地部署Melody

重启操作完成之后,即可以在终端中先创建一个目录,例如: ~/melody-profile

mkdir melody-profile

然后即可执行下方命令启动Melody容器了:

docker run -d -p 5566:5566  -v ~/melody-profile:/app/backend/.profile foamzou/melody:latest

1732864521684

启动完成后,关闭终端。

3. 本地访问与使用演示

在浏览器中输入:http://香橙派IP+端口号5566 即可打开Melody网页界面:

image-20241129152356114

可以看到需要填写melody key后才能开始使用,默认的 melody key 为: melody,若你的服务部署在私有网络,则可以不用修改(网易云账号、密码可以在 web 页面设置)。

若需要修改或添加新账号,可编辑/app/backend/.profile/accounts.json文件。

  • 该 JSON 中的 key 是 Melody Key,是你在网页访问该服务的唯一凭证
  • 网易云账号信息:account 和 password 可以后续在网页修改,修改完成后重启 Docker容器或在网页点点击更新网易云账号信息即可。

image-20241129152527917

我这里选择了扫码登录

image-20241129152704668

通过歌名搜索,可以在多个平台进行搜索并提供结果。

image-20241129162618221

搜索到歌曲后,可以选择播放,上传到云盘,下载到服务器,在源站打开等操作。点击播放条后的三个点,也可以直接将歌曲下载到本地电脑,和选择播放速度。

image-20241129163401261

点击歌单可以看到登录后的歌单

image-20241129162917601

点击 解锁全部(实验性功能) 后,后台会自动匹配每首歌曲,并把歌曲上传到云盘。当某首歌自动解锁失败后,你还可以手动点击搜索按钮,找到符合的歌曲后,手动点击上传按钮。

image-20241129163131840

Melody在手机端的浏览器中适配效果也不错,同样输入香橙派IP+端口5566即可访问:

97f6824b29261583437caea033c0f94

如需了解更多信息,可以访问其作者的官方网站或查阅相关的技术文档。

Docker镜像

https://hub.docker.com/r/foamzou/melody

GitHub地址

https://github.com/foamzou/melody

4. 安装内网穿透

此时,我们已经成功在本地的CasaOS香橙派Zero3主机中部署了Melody,并实现了多设备在线听歌,但目前我们仅能在本地局域网中使用Melody,有一定局限性。如果想在外出时也能远程访问家中部署的Melody来随时随地听喜欢的音乐该怎么办呢?

很简单,只要在香橙派中安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。

首先,点击左上角进入终端:

image-20240528113537036

输入root账号密码登录:(不知道如何获取密码可以看上文中提到的刷机教程)

image-20240528113647981

然后在终端中执行下方一行命令,即可安装cpolar内网穿透工具:

curl -fsSL https://get.cpolar.sh | sudo sh

image-20241012164501257

安装完毕后可以执行下方命令查看服务状态:

systemctl status cpolar

如下图所示即为cpolar内网穿透服务正在正常运行。

image-20241017114210956

5. 配置Melody公网地址

然后我们使用CasaOS香橙派的IP地址加上9200,打开一个新的浏览器来登录cpolar管理界面 :

PS:香橙派的IP地址可以在路由器中查看,名为orangepizero3的就是。

image-20241017114352580

如果没有账号可以点击免费注册访问cpolar官网注册账号:https://www.cpolar.com

输入账号密码登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:melody

协议:http

本地地址:香橙派主机IP+5566端口

域名类型:随机域名

地区:选择China Top

点击创建

image-20241129164522183

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址

image-20241129164628021

打开浏览器,使用刚刚获取的公网地址进行连接访问:

image-20241129164716048

重新输入melody即可正常使用:

image-20241129164830057

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,不好记,而且这个地址在24小时内会发生随机变化,更适合于临时测试使用。

如果有长期远程访问本地casaos香橙派中的Melody在线音乐平台,或者远程访问其他本地服务的需求,又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择配置固定的公网地址来远程访问。

6. 配置固定公网地址

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是 melody001 ,大家也可以自定义喜欢的名称。

image-20241129165038570

保留成功后复制保留成功的二级子域名的名称: melody001 ,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道 melody,点击右侧的编辑:

image-20241129165145179

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:melody001
  • 地区:选择China VIP

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20241129165223099

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,由随机地址名称变成了两个固定的二级子域名(固定公网地址):

image-20241129165307092

使用任意一个固定公网地址在浏览器访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地局域网内的casaos香橙派主机端中的Melody在线音乐平台了!

image-20241129165412593

今天的分享就到这里啦!相信你现在已经在香橙派Zero3上成功搭建了自己的私人音乐平台,并且学会了如何通过cpolar实现远程访问。不论是追求极致音质还是提升技术能力,这个DIY项目都能让你收获满满。如果你还有疑问或者遇到问题,欢迎随时留言交流,大家一起脑洞大开解决问题!希望你不仅能打造出属于自己的私人音乐库,在这个过程中还能找到无限乐趣和成就感。加油吧,未来的音乐DIY大师们!

相关文章:

本地搭建全网可访问的开源音乐服务器Melody结合内网穿透随时听歌

文章目录 前言1. 添加镜像源2. 本地部署Melody3. 本地访问与使用演示4. 安装内网穿透5. 配置Melody公网地址6. 配置固定公网地址 前言 嗨,各位音乐发烧友们!今天我要带你们解锁一个超酷的新技能——在香橙派Zero3上搭建自己的在线音乐平台,并…...

深度学习Y5周:yolo.py文件解读

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 一、前言 文件位置:./models/yolo.py 此文件是实现YOLOv5网络模型的搭建文件,如果想改进YOLOv5,这个文件是必须进行修改的…...

Qt实现文件传输服务器端(图文详解+代码详细注释)

Qt实现文件传输服务器 1、前言2、服务器2.1 服务器UI界面2.2添加网络模块和头文件2.3、创建服务器对象2.4 连接有新连接的信号与槽2.5实现有新连接处理的槽函数2.6 选择文件按钮实现2.6.1 连接按钮点击的信号与槽2.6.2 添加头文件2.6.3 创建所需对象2.6.3 选择文件按钮实现 2.7…...

记录学习的第二十七天

今天效率低下,只做了一道力扣的每日一题。 看了题解才懂的。下面复述一遍吧。 算法就是越长越合法型滑动窗口。 核心: 如果此时窗口中有c个元素x,此时再进一个x,那么相同数对就增加c个。 如果此时窗口有c个元素x,此…...

docker 安装TDengine 时序数据库

TDengine是一个高性能、分布式a的时序数据库,专为物联网(loT)和大数据分析日设计。使用Docker快速地搭建 TDengine 的开发或测试环境。以下技术指南,帮助您通过Docker Compose 安装并运行TDengine 1.拉取镜像 (3.3.6.0版本) docker pull registry.cn-ha…...

如何更好使用呼叫中心系统和语音机器人

​要更好地使用呼叫中心系统和语音机器人,需要结合两者的优势,实现自动化、智能化、高效率的客户服务与业务运营。以下是优化策略和具体实践方法: 一、呼叫中心系统优化 1. 智能路由与IVR优化 ​ ​智能ACD(自动呼叫分配&…...

C复习(主要复习)

指针和数组 指针数组是一个数组,数组的每个元素都是指针。它适用于需要存储多个指针的场景,如字符串数组。数组指针是一个指针,指向一个数组。它适用于需要传递整个数组给函数或处理多维数组的场景。 函数指针:函数指针的定义需要…...

网页五子棋项目测试报告

一、测试概述 网页五子棋项目运用 Java 语言与 Spring 框架开发,具备用户登录注册、人机对战、在线匹配对局、房间邀请对局及积分排行榜等功能。本次测试旨在评估项目各功能的完整性、稳定性与交互性,依据各文章所描述的功能设计和实现细节进行全面测试…...

大模型提示词prompt

系列文章目录 第一章 提示词的引言和指南 文章目录 系列文章目录前言原则1:写清楚具体的说明1、使用分割符2、要求结构化输出3、检查条件是否满足 检查完成任务所需的假设4、少量样例提示给出成功的例子 原则2:给模型足够的时间思考1、给予模型要输出执…...

如何让Agent开发正真可控、可靠?Cursor AI工程化

工程化的目的 不知道你在AI编程的过程中有没有这样的痛点?开发质量不理想、研发进度无法把控… 问题核心在于没有一套属于AI编程的规范,这正是工程化要解决的问题。 如何工程化 参考我们正常研发流程中的步骤,技术方案设计&评审->…...

计算机视觉——基于人工智能视觉注意力的在线广告中评估检测技术

概述 自2023年在线广告行业估计花费了7403亿美元以来,很容易理解为什么广告公司会投入大量资源进行这一特定领域的计算机视觉研究。 尽管这个行业通常较为封闭和保守,但偶尔也会在arxiv等公共存储库中发布一些研究,这些研究暗示了更先进的专…...

opencv函数展示

一、图像基础 I/O 与显示 1.cv2.imread() 2.cv2.imshow() 3. cv2.waitKey() 4. cv2.imwrite() 5. cv2.selectROI() 6. cv2.VideoCapture() 二、颜色空间与转换 1. cv2.cvtColor() 2. cv2.split() 三、阈值处理 1. cv2.threshold() 2. 特殊阈值方法...

Redis 的不同数据结构分别适用于哪些微服务场景

我们一块来分析下Redis 的不同数据结构在微服务场景下的具体应用: 1. String (字符串) 特点: 最基本的数据类型,二进制安全,可以存储任何类型的数据(文本、序列化对象、图片等),最大 512MB。支持原子性的…...

用node编写git钩子hooks的示例

关于 git 钩子函数,就是在 git 进行提交的时候触发一些可执行脚本的功能,详情可以看这篇博客【GIT知识】git进阶-hooks勾子脚本_git hooks-CSDN博客,我这里稍微演示一下怎么用 node 编写钩子的脚本 以 pre-commit 钩子为例,会在用…...

RISC-V架构新生态:鸿道Intewell操作系统×全志D1芯片

在全球化技术博弈与自主可控需求的双重驱动下,RISC-V架构正从开源革命走向产业落地。然而,RISC-V生态的成熟不仅需要硬件层面的突破,更需操作系统与芯片的深度协同。鸿道Intewell操作系统与全志D1(RISC-V架构)芯片的适…...

盈达科技:重新定义GEO优化的技术边界与商业未来​

​ ​​——以硬核技术领跑生成式AI时代的认知主权争夺战​​ ​​01 技术架构:AICC 2.0智能协同中心​​ ​​生成式AI优化的「核动力引擎」​​ 盈达科技独创的​​AICC 2.0(自适应-智能-认知-动态响应)智能协同中心​​,构建…...

芯片测试工具系统Demo示例

芯片测试工具系统Demo示例 一个简单的芯片测试工具系统Demo示例,包含基础功能和模拟测试流程,使用Python实现: python import time import random import csv from datetime import datetime class VirtualChip: """模…...

从单模态到多模态:五大模型架构演进与技术介绍

前言 1. ResNet — 残差神经网络背景核心问题与解决方案原理模型架构ResNet 系列变体技术创新与影响 2. ViT — Vision Transformer背景核心思想发展历程Transformer的起源:ViT的出现:ViT的进一步发展: 模型架构技术创新与影响 3. Swin Trans…...

基于 Java 的淘宝 API 调用实践:商品详情页 JSON 数据结构解析与重构

一、引言 在电商领域,淘宝拥有海量的商品数据。通过调用淘宝 API 可以获取商品详情页的 JSON 数据,这对于商家进行市场分析、竞品调研等具有重要意义。本文将详细介绍如何使用 Java 调用淘宝 API,获取商品详情页的 JSON 数据,并对…...

Sentinel源码—3.ProcessorSlot的执行过程二

大纲 1.NodeSelectorSlot构建资源调用树 2.LogSlot和StatisticSlot采集资源的数据 3.Sentinel监听器模式的规则对象与规则管理 4.AuthoritySlot控制黑白名单权限 5.SystemSlot根据系统保护规则进行流控 3.Sentinel监听器模式的规则对象与规则管理 (1)Sentinel的规则对象 …...

【C++11】列表初始化、右值引用、完美转发、lambda表达式

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🌐 C 语言 上篇文章:unordered_map、unordered_set底层编写 下篇文章:C11:新的类功能、模板的可…...

Spring中IOC的重点理解(笔记)

Spring: 出现在2002左右.解决企业级开发的难度.减轻对项目模块 类与类之间的管理帮助开发人员创建对象,管理对象之间的关系. 补充:什么是OCP原则?(面试) (1)是软件七大开发当中最基本的一个原则&#xff…...

数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记4

前言 前面详细介绍了关于SELECT语句的相关使用方法,继续上文的介绍,本文将继续介绍数据查询的其他相关操作,主要包括排序(ORDER BY)子句、分组(GROUP BY)子句。与此同时,介绍完单表…...

【1】CICD持续集成-docker本地搭建gitlab代码仓库社区版

‌一、gitlab社区版概述 GitLab社区版(Community Edition, CE)是一个开源的版本控制系统,适用于个人开发者、中小团队及大型企业。‌ GitLab社区版采用MIT许可证,用户可以免费使用和修改源代码。其主要功能包括代码托管、版本控制…...

Verdi工具使用心得知识笔记(一)

Verdi工具使用知识点提炼 本文来源于移知,具体文档请咨询厚台 一、基础概念 波形依赖 Verdi本身无法生成波形,需配合VCS等仿真工具生成.fsdb文件。核心功能模块 • nTrace:代码调试与追踪 • nSchema:原理图分析 • nState&…...

【25软考网工笔记】第二章 数据通信基础(4)数据编码

目录 一、曼彻斯特编码 1. 以太网 2. 题型(考试过的选择题) 1)题目解析 二、差分曼彻斯特编码 三、两种曼彻斯特编码特点 ​编辑 1. 双相码 2. 将时钟和数据包含在信号数据流中 3. 编码效率低 4. 数据速率是码元速率的一半 5. 应用案例 ​编辑 1&…...

【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——USB OTG测试

1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 第四章 ATK-DLMP257B功能测试——USB OTG测试…...

现代c++获取linux系统磁盘大小

现代c获取linux系统磁盘大小 前言一、命令获取系统磁盘大小二、使用c获取系统磁盘大小三、总结 前言 本文介绍一种使用c获取linux系统磁盘大小的方法 一、命令获取系统磁盘大小 在linux系统中可以使用lsblk命令显示当前系统磁盘大小,如下图所示 lsblk二、使用c获…...

tcp和udp的数据传输过程以及区别

tcp和udp的数据传输过程以及区别 目录 一、数据传输过程 1.1 UDP 数据报服务图 1.2 TCP 字节流服务图 1.3 tcp和udp的区别 1.3.1 连接特性 1.3.2 可靠性 1.3.3 数据传输形式 1.3.4 传输效率与开销 应用场景 一、数据传输过程 1.1 UDP 数据报服务图 这张图展示了 UDP 数据报服务…...

C++项目-衡码云判项目演示

衡码云判项目是什么呢?简单来说就是这是一个类似于牛客、力扣等在线OJ系统,用户在网页编写代码,点击提交后传递给后端云服务器,云服务器将用户的代码和测试用例进行合并编译,返回结果到网页。 项目最大的两个亮点&…...

C 语言中的 volatile 关键字

1、概念 volatile 是 C/C 语言中的一个类型修饰符,用于告知编译器:该变量的值可能会在程序控制流之外被意外修改(如硬件寄存器、多线程共享变量或信号处理函数等),因此编译器不应对其进行激进的优化(如缓存…...

mysql表类型查询

普通表 SELECT table_schema AS database_name,table_name FROM information_schema.tables WHERE table_schema NOT IN (information_schema, mysql, performance_schema, sys)AND table_type BASE TABLEAND table_name NOT IN (SELECT DISTINCT table_name FROM informatio…...

JavaScript事件循环

目录 JavaScript 执行机制与事件循环 一、同步与异步代码 1. 同步代码(Synchronous Code) 2. 异步代码(Asynchronous Code) 二、事件循环(Event Loop) 1. 核心组成 2. 事件循环基本流程 3. 运行机制…...

Linux》》bash 、sh 执行脚本

通常使用shell去运行脚本,两种方法 》bash xxx.sh 或 bash “xxx.sh” 、sh xxx.sh 或 sh “xxx.sh” 》bash -c “cmd string” 引号不能省略 我们知道 -c 的意思是 command,所以 bash -c 或 sh -c 后面应该跟一个 command。...

Git完全指南:从入门到精通版本控制 ------- Git 查看提交历史(8)

Git提交历史深度解析:从代码考古到精准回退 前言 在软件开发的生命周期中,提交历史是团队协作的时空胶囊。Git作为分布式版本控制系统,其强大的历史追溯能力可帮助开发者: 精准定位引入Bug的提交分析代码演进趋势恢复误删的重要…...

精益数据分析(2/126):解锁数据驱动的商业成功密码

精益数据分析(2/126):解锁数据驱动的商业成功密码 大家好!在如今这个数据爆炸的时代,数据就像一座蕴含无限宝藏的矿山,等待着我们去挖掘和利用。最近我在深入研读《精益数据分析》这本书,收获了…...

【ssti模板注入基础】

一、ssti模板注入简介 二、模板在开发中的应用 为什么要使用模板 为什么要用模板来提升效率: 不管我们输入什么,有一部分内容都是不会变的 除了内容之外其他都不会变,如果我们有成千上万的页面,如果不用模板,就算复…...

如何在 Kali 上解决使用 evil-winrm 时 Ruby Reline 的 quoting_detection_proc 警告

在使用 Kali Linux 运行 Ruby 工具(例如 evil-winrm)时,你可能会遇到以下警告: Warning: Remote path completions is disabled due to ruby limitation: undefined method quoting_detection_proc for module Reline这个警告会导…...

从零开始搭建PyTorch环境(支持CUDA)

从零开始搭建PyTorch环境(支持CUDA) 本文将详细介绍如何在Windows系统上为RTX 3050显卡配置支持CUDA的PyTorch环境。 环境准备 本教程基于以下环境: 显卡:NVIDIA RTX 3050操作系统:WindowsPython版本:3.1…...

【扩散模型连载 · 第 2 期】逆向扩散建模与神经网络的角色

上期回顾 我们在第 1 期中介绍了 正向扩散过程(Forward Process),并用 CIFAR-10 图像演示了加噪过程: 正向过程是固定的,无需训练,但我们感兴趣的是:如何从纯噪声一步步“还原”出真实图像&…...

Mysql约束

约束其实就是创建表的时候给表的某些列加上限制条件。 主键约束和自增长约束比较重要 一、Mysql约束-主键约束 简介 指定的主键不能重复也不可以出现空值 1.添加单列主键 语法1:create table 表名(字段名 数据类型 primary key); 点开…...

力扣热题100—滑动窗口(c++)

3.无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 unordered_set<char> charSet; // 用于保存当前窗口的字符int left 0; // 窗口左指针int maxLength 0; // 最长子串的长度for (int right 0; right < s.siz…...

Linux网络编程第一课:深入浅出TCP/IP协议簇与网络寻址系统

知识点1【网络发展简史】 **网络节点&#xff1a;**路由器和交换机组成 交换机的作用&#xff1a;拓展网络接口 路由&#xff1a;网络通信路径 1、分组交换 分组的目的&#xff1a; 数据量大&#xff0c;不能一次型传输&#xff0c;只能分批次传输&#xff0c;这里的每一批…...

论文阅读笔记:Generative Modeling by Estimating Gradients of the Data Distribution

1、参考来源 论文《Generative Modeling by Estimating Gradients of the Data Distribution》 来源&#xff1a;NeurIPS 2019 论文链接&#xff1a;https://arxiv.org/abs/1907.05600 参考链接&#xff1a; 【AI知识分享】真正搞懂扩散模型Score Matching一定要理解的三大核心…...

C++零基础实践教程 函数 数组、字符串与 Vector

模块四&#xff1a;函数 (代码复用与模块化) 随着程序变得越来越复杂&#xff0c;把所有代码都堆在 main 函数里会变得难以管理和阅读。函数 (Function) 允许你将代码分解成逻辑上独立、可重用的块。这就像把一个大任务分解成几个小任务&#xff0c;每个小任务交给一个专门的“…...

照片处理工具:基于HTML与JavaScript实现详解

在当今数字时代,处理照片已成为日常需求。 本文将详细介绍一个基于HTML和JavaScript的照片处理工具的实现原理,这个工具可以调整图片尺寸、格式,并精确控制输出文件大小。 实现如下,不需要任何编辑器,txt文本、浏览器就行!! 工具功能概述 这个照片处理工具提供以下核心…...

MyBatis-OGNL表达式

介绍 OGNL&#xff08;Object-Graph Navigation Language&#xff09;是一种强大的表达式语言&#xff0c;用于获取和设置Java对象图中的属性。在MyBatis中&#xff0c;OGNL常用于动态SQL构建&#xff0c;如条件判断、循环等。以下是关于OGNL表达式的整合信息&#xff0c;包括…...

Web Worker在uniapp鸿蒙APP中的深度应用

文章目录 一、Web Worker核心概念解析1.1 什么是Web Worker&#xff1f;1.2 为什么在鸿蒙APP中使用Web Worker&#xff1f;1.3 性能对比实测 二、uniapp中的Web Worker完整实现2.1 基础配置步骤2.1.1 项目结构准备2.1.2 鸿蒙平台特殊配置 2.2 Worker脚本编写规范2.3 主线程通信…...

无人机故障冗余设计技术要点与难点!

一、技术要点 1. 冗余架构设计 硬件冗余&#xff1a;关键部件&#xff08;飞控、电机、电池、通信模块&#xff09;采用双余度或三余度设计&#xff0c;例如&#xff1a; 双飞控系统&#xff1a;主飞控失效时&#xff0c;备用飞控无缝接管。 电机动力冗余&#xff1a;六轴无…...

MySQL数据库表查询

测试表company.employee5 mysql> create database company; #创建一个库&#xff1b; 创建一个测试表: mysql> CREATE TABLE company.employee5(id int primary key auto_increment not null,name varchar(30) not null,sex enum(male,female) default male not null,hi…...