- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 【Electron 7】实时语音对讲边录边发实战:AudioWorklet + PCM16 实时帧方案
本文记录实时语音对讲中“边录边发”的完整实现方案:从技术选型、AudioWorklet 实时采集、Float32 → PCM16 转换、16kHz 单声道 20ms 分帧,到 macOS 权限崩溃、PCM 转换噪音、资源清理与后续演进方向。
2026-10-10 18:07:22
533
原创 ESP32-S3 N16R8 + 小智 AI + 2.8寸 TFT 屏开发实战:ESP-IDF环境搭建与硬件避坑指南
本文记录了从Arduino转向ESP-IDF开发ESP32-S3 N16R8的全过程,重点解决硬件适配问题。通过浏览器烧录小智AI固件后,因TFT屏幕引脚不兼容转向VS Code+ESP-IDF开发环境搭建。
2026-07-28 10:30:58
617
原创 从零构建边缘音频终端:基于 ESP32-S3 软硬解耦的全栈闭环实践
本文介绍了一个基于ESP32-S3的双向音频终端项目,实现了从底层硬件到上层应用的完整通信闭环。项目集成了MAX98357A功放、INMP441麦克风和腔体喇叭,通过I2S总线连接,支持Web与串口双通道控制。文章详细解析了硬件选型、物理层拓扑连接(包括关键工程注意事项),并采用三层解耦软件架构(硬件驱动层、指令解析层、通信通道层)确保稳定性。通过有限状态机管理设备状态,非阻塞任务调度和自动重连机制解决音频断连问题。所有设计均通过实测验证,为后续扩展为Node.js原生插件奠定基础。
2026-06-28 20:42:24
471
原创 从0搭建Electron硬件架构:一个被系统性问题反复击穿的开发者复盘
一名前端页面仔,用三年时间独自趟过 Electron、TCP 长连接、实时语音、蓝牙硬件和崩溃治理的深水区。这篇文章不是成功的经验,而是一个普通开发者匍匐前进的完整地图。
2026-05-03 01:26:48
417
原创 【Electron】开发两年Electron项目评估报告
本人负责的中大型 Electron 桌面应用技术评审报告,基于 cloc 代码统计、madge 依赖分析,完整呈现项目质量与组件复用情况,专门作为简历项目附件参考。
2026-04-02 10:05:21
254
原创 【Electron】IpcMainEvent 参数使用总结
本文介绍了Electron中主进程与渲染进程间通信的核心机制。详细解析了IpcMainEvent参数,包括事件类型、进程ID、框架ID、返回值设置等核心属性,并重点说明了MessagePort在高吞吐量场景下的应用方法。通过代码示例展示了主进程创建MessageChannel、preload配置转发端口到渲染进程的完整流程。
2025-11-28 10:50:12
535
原创 【Electron 5】electron将获取的Uint8Array转为中文
学习博客地址:https://www.cnblogs.com/qianxiaox/p/14019522.html。npm包地址:https://www.npmjs.com/package/protobufjs。注:我这个.proto文件是公司c语言程序猿写的,所以拿过来直接执行转换js文件就可以使用了。
2024-06-24 17:41:29
508
原创 【Electron 4】electron配置打包环境
因为我是已有的项目了,所以这里我只需要安装并引入electron-forge,虽然我进行配置了项目,但是我为了图省事用了electron框架,所以我必须用electron-builder进行配置打包了,所以这里针对electron-forge的笔记可能会比较浅薄。注:因为我项目中用的是umi脚手架搭建的react,打包后,是空白页面,所以要在.umirc.ts中配置一下即可。output:是我将input引入图标所转换不同大小不同格式的图标输出文件。input:icon.png是我需要引入的图标。
2024-04-23 16:35:40
1840
原创 【Electron报错】 electron-buidler打包sqlite3问题汇总
electron-builder打包sqlite3运行报错:TypeError: Cannot read property 'indexOf' of undefined...
2024-04-23 14:51:51
2196
原创 【Electron】打包报错webpack/electron/sqlite3/node-pre-pyg代码被打包进主线程js文件
【代码】【electron】打包报错webpack/electron/sqlite3/node-pre-pyg代码被打包进主线程js文件。
2024-04-18 18:56:02
857
原创 js Class的概念及其应用场景
含义:类是用来创建对象的模板。JS和其他语言不同,它是没有Class的,它本质就是JS的构造函数封装的语法糖。ES6提供一种更为清晰的方式来遵循面向对象的编程方式。
2024-03-31 16:00:49
2019
1
原创 从输入url到页面展示的过程
唠唠叨:我不想误人子弟,我这篇算是搬运工,加上自己的理解做点总结,所以还请大家科学上网去看这篇:https://aws.amazon.com/cn/blogs/mobile/what-happens-when-you-type-a-url-into-your-browser/
2024-03-30 21:54:17
1565
原创 【electron1】electron的学习基础汇总
Electron学习基础汇总。标注:我一定要说的是,用来一年的electron给我带来的震撼和惊喜一直存在,因为研究不同的项目源码实现,我无意下载来discord程序,结果这个竟然是由electron开发并打包成window、mac、linux、Android、iOS等系统,仅仅只是不支持鸿蒙OS。
2024-03-29 23:57:13
1514
原创 ts的interface和type区别
interface:多个 同名的 interface 却是可以通过这种形式合并,但是定义的属性名冲突也会报错。type 可以定义任何类型,不仅仅是对象类型,也可以定义基本类型、联合类型、交叉类型等。type 可以定义类型别名,它们可以使用 & 运算符合并多个类型,生成一个新的类型。骚操作将 type 和 interface 混合使用,竟然真的可以😂。用 type 定义一个心的类型别名,然后用这个别名来定义一个对象。type: 定义多个相同的type名就会直接爆红,页面也会报错。
2024-03-16 20:15:41
511
原创 react和vue对比
但是还算是最了解react吧,当初从react class 向 react hooks转型的时候,就是因为我看到来react官网上的一个将class编程和hooks编程的相同功能代码做了对比,而hooks的代码量显然少了将近一半儿,可读性强,维护友好,重用性高。我认为 vue3 更准确的来说,不是严格意义上的hook形式,而是Composition API,除一些生态圈的变化外,vue3与react hooks相比来说,react hooks几乎所有的方法都是基于钩子进行开发的。
2024-03-12 16:57:59
561
原创 react批量引入svg图标
PS:也不只在react中用,其他框架也可,生态圈不一样配置会不同,但是能提供整体的思路,可以参考。注:我之所以能直接使用@去默认引入src下的所有文件,是因为我在typescript中配置path。在批量引入之前,我们需要安装一个包并配置到typescri.json文件中。在src文件下新建一个icon文件,然后新建一个.tsx文件。注:这块代码可直接copy走。批量引入处理并导出封装组件。
2024-03-11 20:37:49
1179
原创 vue实现pdf预览功能总结
总结:最初我是用了vue-pdf这个直接进行安装并进行使用的,可是并不适用我的项目,而且用户体验不好,最主要的是出现空白页,这只能完成简单的静态预览打印功能,让我觉得内心总觉得那里不满足。所以我干脆换了一种iframe的使用预览方式,这个方法简直太爽了,可以预览,在预览中生成目录,跳页翻页还有预览小框点击跳转页面,下载,打印,放大缩小并且还清晰展示,这些都可以满足!!!简单的预览功能请使用vue-pdfnpm install --save vue-pdf这里就不细描述了,具体看官网http
2021-05-29 11:34:51
1710
1
原创 docx插件的使用
简介: docx是用于前端自己去渲染word的使用,这是根据项目无法固定word内容,如果有用到这个插件,我的笔记无法达到所需还请去参考官网,再次补充下:我所做的笔记可能会有问题或者不够深入,也希望用此插件的用户进行补充和指导。在此非常感谢!new Document() // 创建一个文档,里面可以设置文档的样式,文档的作者、标题、描述等import { Document} from "docx"所有的样式都是在new Document中创建的import { AlignmentType,
2021-03-27 12:04:24
5107
4
原创 使用blob 实现 js下载word、Excel等文件
我之前有写过一篇就关于vue下载文件的,那个是很好用,但那个是基于我项目中是比较合适的,但实际上,项目中还有一个方法就是使用js中Blob,这个是什么那,其实无论是fetch还是axios都有提供Blob的功能,这个就是把后端返回来的数据文本或者二进制流的数据,转换成字节,返回成一个新的blob对象,再去进行下载。代码示例:this.$api.Business.download({}, res => { // 我这个是下载的word文档,第二个参数会这样写的 cons
2021-01-31 11:40:06
7724
原创 使用antv的G6展示折叠节点树的效果
安装:npm install --save @antv/g6;效果图展示:这些代码可以直接拿过去用,这是封装的一个公共组件。import React, { useEffect, useState } from 'react';// 引入G6import G6 from '@antv/g6';// 引入antv的样式import insertCss from 'insert-css';const GsixManage = (props) => { const listObj
2020-11-28 13:27:22
8632
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅