- 博客(39)
- 收藏
- 关注
原创 【无标题】
**本文档是《OfflineSpeechService 专项速通手册》的技术总结,主要介绍了在AOSP系统中实现离线语音识别服务的核心流程和关键要点。重点内容包括:1) 快速复现流程,涉及环境部署、模型搬运、编译安装和测试验证;2) 常见问题排查方案,如崩溃、权限、识别异常等问题;3) 项目架构设计,说明如何将Vosk引擎集成到Android的RecognitionService框架中;4) 技术难点分析,包括异步加载、音频流管理和系统权限处理等。该服务实现了完全离线的语音转文字功能,适用于无网环境下的系统
2026-01-30 17:44:06
573
原创 Week 1:多媒体处理链路总览
Profile 是 H.264 定义的算法特征集。常见的有 Baseline、Main 和 High Profile。Baseline 不支持 B 帧,适合实时性要求高的场景;而 High Profile 压缩效率最高,是目前高清视频的主流。在 Android 开发中,我们需要根据硬件的解码能力(从 SPS 里解析出来的 Profile/Level)来决定是否能流畅播放该视频。:你应该什么时候把这堆二进制数据丢进解码器。:你应该什么时候把解出来的图片贴在屏幕上。
2026-01-11 18:02:13
968
原创 Exoplayer实现Progressive起播预取8mb进行预加载
本文介绍了使用ExoPlayer实现渐进式播放预加载的三种方案:1)离线下载/预下载方案,通过DownloadManager后台缓存完整文件;2)边播边写方案,播放时动态写入缓存;3)显式预取方案,在播放前主动加载前8MB数据。重点分析了显式预取的实现原理,通过CacheWriter预加载数据到SimpleCache,播放时使用只读CacheDataSource命中缓存,实现秒开效果。文章对比了三种方案的适用场景,并指出预取方案通过分离"写缓存"和"读缓存"两个独立过
2025-10-26 12:40:37
607
原创 ExoPlayer缓存机制源码解析
ExoPlayer缓存机制解析:核心类与工作原理 核心组件 Cache/CacheSpan:定义缓存接口与数据段概念 SimpleCache:主实现类,管理磁盘存储与索引 CacheDataSource:处理缓存读写逻辑 CacheEvictor:实现LRU等淘汰策略 工作流程 初始化:建立目录结构,加载UID和索引 读写控制:通过startReadWrite获取读/写锁 数据写入:分片存储,满5MB提交一次 缓存命中:优先读取本地,未命中时从网络获取并写回 关键机制 锁管理:确保并发读写安全 空间回收:L
2025-09-07 17:50:04
1079
原创 Android 音量调节流程分析
音量键被按下后,按键事件会一路派发给Acitivity,如果无人拦截并处理,承载当前Activity的显示PhoneWindow类的onKeyDown()以及onKeyUp()函数将会被处理,从而开始通过音量键调整音量的处理流程;按照输入事件的派发策略,Window对象在事件的派发队列中位于Acitivity的后面,所以应用程序可以重写自己的Activity.onKeyDown()函数以截获音量键的消息,并将其用作其他的功能。比如说,在一个相机应用中,按下音量键所执行的动作是拍照而不是调节音量;
2024-10-31 22:18:25
1827
原创 FFMPEG+ANativeWinodow渲染播放视频
其实这个demo的实现真的很简单,只需要熟悉FFMPEG的一个基本流程便可轻松实现。后续我会将这个demo的源码上传,大家有需要的可以进行下载,或者私信我直接给你们发。
2024-05-29 21:15:12
1457
原创 NDK调用OpenGL使用Camera2进行相机黑白滤镜预览(FBO离屏渲染)
NDK调用OpenGL使用Camera2进行相机黑白滤镜预览(FBO离屏渲染)
2024-01-05 18:51:31
1682
原创 安卓NDK保姆级OnpenGL绘制三角形(详细到爆炸)
我上面的代码是画了两个三角形,我后面的讲解只会讲其中的一个,因为在这段代码中,两个三角形绘制的方式都是一样,都是一个VAO,跟一个VBO(这两个东西,前面有叫你们去看噢,忘记再去温习理解一下)。首先我们看一下,我们需要定义我们三角形的三个坐标//这个很明显是一个等腰三角形紧接着,我们需要创建VAO\VBO//创建VAO//创建VBO。
2023-11-09 21:19:46
626
原创 Camera2+MediaCodec+AudioRecord+MediaMuxer实现录制功能(带源码)
该文章实现了Camera2使用MediaCodec进行录像,合成MP4有视频轨道,有音频轨道Camera2+MediaCodec+AudioRecord+MediaMuxer存在完整源码
2023-06-08 17:54:05
8711
12
原创 mysql版本太低,存储emoji解决方法
emoji-java介绍这个jar包是真厉害,完美解决了懒狗(懒得去升级数据库版本的我),只需要引入jar包,一共就两个方法,贼好用,而且可以混合字符串和emoji表情进行转换,基本没有什么误差引入jar包<dependency> <groupId>com.vdurmont</groupId> <artifactId>emoji-java</artifactId> <version>4.0.0<
2022-03-28 19:36:55
1436
原创 JWT辅助类
添加jwt工具依赖<dependencies> <!-- JWT--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> </dependency></dependencies>创建JWT工具类import io.json.
2022-03-26 00:04:32
277
原创 axios的Post请求对于上传文件与对象多参数的解决
前情提要今天在自己写项目的时候,遇到了一个功能需求,碰壁了一下午,特地来记录一下,使用axios如何做到在post请求的前提下可以同时上传文件与对象。解决问题切入点首先我们需要知道一个知识概念,在上传文件时,axios的请求头与平时上传对象的请求头是不同的,这也是造成容易出现问题的关键所在。上传文件的请求头'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'一般对象的请求头"Content-type
2021-12-23 20:04:31
6119
原创 修改vue-element-admin的element-ui版本
今天在写项目的时候,跟往常一样,一遍用着vue-element-admin的模板,一遍用着elementui搭配使用。整个过程非常愉快以及轻松,但是这时可恶的报错出现了,这里报错就不展示了,因为我是解决了问题才想着写这个,报错消失了。大体报错就是表示我用的那个elementui组件被爆说没有注册,我当时都给吓坏,我是直接git下下来的啊,没动过配置呀,后来仔细看了一下elementui的官网发现那个组件是最新版本才有的组件,vue-element-admin没有正常。那能怎么办,只能试着换版本了在项
2021-12-11 15:39:56
1506
原创 关于vue-admin-templat路由的使用
今天项目需要用到路由跳转就做一下记录吧!首先我们需要找到组件放在什么地方,从下图可以知道components放着所有的组件,所以我们后续添加的组件都存放在这个文件夹中。创建好之后,便可以在需要的地方注册这些组件并且使用。1.首先我们需要引入组件2.定义组件3.使用组件 首先还是需要在data中定义变量 其次就可以使用了...
2021-12-04 16:46:30
763
原创 关于mybatis-plus代码生成器后做得配置补充
发现问题使用了MP自带的代码生成器生成代码后,我准备自定义一个mapper去实现动态条件分页查询,按照所有步骤完成后,却发现报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)。解决方法找了很多网页,首先整理一下遇到这些问题应该排查哪里我将前面四点都给排查了一遍,也就是说还有最后一个没有排查完,我确实也没有对mp进行这两个配置。配置上之后便不报这个错误了。意外的错误当.
2021-11-21 21:23:44
393
原创 Springboot(谷粒商城)项目架构搭建
一、工程结构介绍1、工程结构2、模块说明guli-parent:在线教学根目录(父工程),管理四个子模块:canal-client:canal数据库表同步模块(统计同步数据) common:公共模块父节点 common-util:工具类模块,所有模块都可以依赖于它 service-base:service服务的base包,包含service服务的公共配置类,所有service模块依赖于它 spring-se...
2021-11-14 20:39:12
436
原创 springboot实现多线程定时发送邮件
一、资料参考SpringBoot异步处理任务SpringBoot整合邮件发送SpringBoot之定时任务详解有了这些资料便可以非常快速的实现这一功能
2021-09-06 20:17:13
805
原创 Swagger3使用
一、依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency> swagger3跟2不同只需导入一个这个依赖就行,不需要另外ui等依赖二、配置启动类添加@Enabl.
2021-09-05 15:47:59
638
原创 SpringBoot整合shrio、mysql
首先是新建一个springboot项目,把依赖装好然后把mybatis整合进项目中,这里便不多赘述装好后便可以开始整合这个安全框架了首先在配置之前,我们需要明确shrio的三大对象Subject 用户 SecurityManager 管理所有用户 Realm 连接数据这三个对象贯穿整个项目的整合1.导包 <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring -->
2021-09-05 10:44:51
144
NDK调用OpenGL使用Camera2进行相机黑白滤镜预览(FBO离屏渲染)
2024-01-05
基于Camera2的自定义Camera
2023-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅