- 博客(32)
- 收藏
- 关注
原创 Android(Compose)使用 LibVLC 播放 RTSP 视频流
Android LibVLC RTSP播放解决方案 本文针对Android使用LibVLC播放RTSP视频流时常见的黑屏、延迟、卡顿等问题,提供了完整的解决方案。关键点包括: 正确初始化:必须使用Uri.parse创建Media对象,而非直接字符串 硬件加速:显式启用setHWDecoderEnabled 视图绑定:正确使用attachViews方法 优化参数:设置合理的网络缓存(3000ms)和TCP传输等选项 资源管理:及时释放Media对象 提供两种实现方式: Compose组件封装 传统Activi
2026-03-13 16:17:47
245
原创 Jetpack Compose 中 Drawer 快速切换页面导致白屏的问题
Jetpack Compose Drawer 快速切换导致白屏问题 问题描述:在 Jetpack Compose 应用中,当使用 Drawer 侧滑菜单结合 Navigation 组件快速切换页面时,会出现白屏、返回键失效、导航栈异常等问题。 核心原因:快速点击导致导航请求并发执行,产生竞态条件,破坏 NavController 的 BackStack 状态。 解决方案: 实现路由状态检查,避免重复导航 添加栈损坏检测和自动恢复机制 使用自定义 Drawer 实现而非 Scaffold 的内置 Drawer
2026-03-12 11:33:51
317
原创 iOS 自定义 RTSP 视频播放器(支持全屏播放)
本文介绍了在iOS平台上实现自定义RTSP视频播放器的方法,重点支持全屏播放功能。采用MobileVLCKit(3.7.3)作为核心播放库,通过CocoaPods集成。实现方案包含:1)使用fullScreenCover实现全屏切换;2)支持横竖屏自动旋转;3)共享渲染视图避免画面卡顿;4)通过延迟暂停/播放解决全屏关闭时的黑屏问题。关键组件包括RTSPPlayerViewModel管理播放状态、VideoPlayerUIView作为播放器容器、FullScreenVideoView处理全屏显示。文章还提供
2026-03-06 11:17:57
279
原创 【Android开发】自定义目录对Android项目的资源文件进行分类
本文介绍了Android项目中自定义layout目录分类的必要性和实现方法。随着项目规模扩大,传统单一layout目录会导致文件混乱,模块化分类可提升可读性和维护性。通过Gradle配置多资源目录,可在build.gradle中指定不同功能模块的布局路径,如登录、首页等。建议按功能或组件类型划分目录,注意避免文件名冲突。还介绍了通过productFlavors实现多套UI的进阶方案,并分析了多资源目录对编译性能的影响,建议合理分类并通过lint优化编译速度。
2026-01-26 14:23:52
222
原创 【Ubuntu】Ubuntu下解决Chrome不能输入中文
Ubuntu系统下Chrome浏览器无法输入中文的解决方案:针对Ubuntu 25.04使用Fcitx5/Rime输入法时,在Chrome中无法切换中文或显示候选框的问题(Firefox正常),可通过系统设置解决。进入输入法-键盘-虚拟键盘选项,选择启用"Fcitx 5 Wayland"或"iBus Wayland"启动器即可恢复正常中文输入功能。
2025-12-06 12:58:58
395
原创 【Android】解决安卓在隐藏系统栏后usb鼠标被隐藏的问题
摘要:本文解决了安卓设备在隐藏系统导航栏后USB鼠标被隐藏的问题。当仅隐藏导航栏而保留状态栏时,鼠标会被系统隐藏,需点击才会显示。通过使用开源库ImmersionBar,在Activity的onCreate中配置状态栏和导航栏样式(包括字体颜色、背景色等),成功恢复了鼠标的正常显示。最终方案简洁有效,完美解决了该兼容性问题。
2025-09-23 17:08:44
581
原创 【Flutter】使用LiveKit和Flutter构建实时视频聊天应用
在当今快速发展的数字世界中,实时视频通信已成为许多应用程序的核心功能。无论是远程工作、在线教育还是社交网络,高质量的实时视频功能都至关重要。LiveKit作为一个开源的WebRTC解决方案,提供了构建可扩展实时音视频应用所需的一切工具。结合Flutter的跨平台能力,我们可以轻松创建出色的视频聊天体验。本文将带你了解如何使用LiveKit Server和LiveKit Flutter SDK构建一个实时视频聊天应用。记住你的API_KEY和API_SECRET,稍后客户端连接时会用到。
2025-04-20 23:24:49
237
原创 【uniapp】uniapp使用java线程池
由于js是性能孱弱的单线程语言,只要在渲染中执行了一些其他操作,会中断渲染,导致页面卡死,卡顿,吐司不消失等问题。在安卓端可以调用java线程池,把耗时操作写入线程池里面,优化性能。使用native.js,直接贴出代码。
2025-01-28 12:17:25
1145
原创 uniapp与android的数据交互
uniapp层 省略,其中 byteArray,lists,sets返回都是jsonArray.测试uniapp和安卓原生数据的交互,看看weex会怎么转化这些数据。foreach会打印一遍。
2025-01-09 16:34:20
350
原创 Android开发 解决录音杂音问题,也不止于此
这样乍一看是没什么错误,但是执行之后录的音,带有加速和变音,还有电流哒哒哒的声音。找了一天的bug,有人说什么8bit录音没问题,16bit就有问题,有人说什么大小端,都是纯扯淡。系统在短时间内,上一段数据还没处理完毕,就已经进入下一段循环,所以导致我的声音录制带杂音。视频录制,直播等计算密集型都可以排查这方面的问题。问了gpt,为什么这段会出错,突然茅塞顿开。
2024-12-09 00:31:11
534
原创 【Android】安卓开发踩坑,米系手机专属
复现流程,必须连接一个tcp服务,在循环中发送流的数据并sleep一会儿。就会导致流数据的发送 不完全,直接中断发送,我定义了一个count记录循环次数,循环次数竟然没问题,但是服务端确实没有收到完整的数据。笔者在自己代码里检查了两天,发现在别的手机系统就没有这个问题,后面回来好好写。下面是exception trace。循环读取流数据,并睡一会儿打印,这个操作是没有问题的。在做Android app的调试时,总有一个bug,装在红米手机上,会复现,代码审查了很多遍,后面确定是澎湃系统的问题。
2024-12-03 08:36:40
989
原创 【uniapp】uniapp安卓插件实时监听麦克风数据
在js层引入,注意 可能会提示插件存在但未打包,引用失败等云云。在确认插件的package.json class精确到Class类名,以及里面的id name需要和文件夹名一致。否则都会出现失败,如果都没问题还显示这个,上传自定义基座再多试几次。
2024-11-29 14:49:42
828
2
原创 【Android开发】gradle没有assemble Task解决
在as2024版本中,打开Settings->Experimental->勾选 Configure all Gradle tasks during Gradle Sync (this can make Gradle Sync slower)旧版as是“Do not build Gradle task list during Gradle sync” 操作这个选项。之后再Gradle Sync一下就可以了。
2024-11-28 08:43:25
495
原创 kotlin协程的注意事项
这种代码乍一看好像没什么问题,但是,这其实是创建了一个线程,这个线程一直在收集着这个flow,每次点击都创建了一个flow的观察者,等待flow值更新,这些线程都会回调这个collect方法,导致点击了几次,就会打印几次这个值。或者在收集前,用flow的take操作符,设定收集几次。
2024-08-07 17:30:51
314
原创 记录一下报错[databinding] ... ... conflicts with another tag that has the same ID
解决一下,尝试把那个报错的xml字段删除,尝试了clean build,rebuild,无济于事。这方面的文章真少,好在看到了这位老哥的文章https://blog.csdn.net/yfy1907/article/details/126763838。最后 重启电脑解决,安卓开发真好玩,浪费我两个钟头,啥也没干。执行 gradlew assembleDebug 也失败。今天回家AS又抽风了。
2023-12-21 22:45:02
940
2
原创 mpandroidchart绘制折线图高亮问题踩坑
这里报了空指针,没有获取到dataSetCount,需要把高亮api方法,放在setData的后面,之后就有默认被点击的高亮效果了。还有的时候高亮写了直接无效果,现在无法复现,猜测可能也是写法的问题。今天在用mpchartandroid绘图的时候,有个折线图高亮的需求,自己设置高亮时发生npe,与诸君分享,贴个bug,方便遇到问题的小伙伴可以快速索引到。
2023-12-14 22:25:41
615
1
原创 Retrofit设置对某个数据返回不解析
总有些时候,后端给你的数据是比较特殊的,不能轻易的把返回json转换成对象,比如以下数据{ "code": 200, "message": "成功", "data": { "income": "667.06", "statement_data": { "2023-11": { "income": "542.00", "expend": "0.00"
2023-12-13 09:23:39
596
原创 gradle no further information解决办法
flutter的安卓项目部分,同时无法解析android 项目,删除android项目然后执行flutter create .即可,单独用as打开,发现gradle一直报错,添加maven也不管用,遂在已有项目中选取gradle文件夹进行替换,完美解决。
2023-11-15 22:27:09
730
1
原创 修复ERR_ADDRESS_UNREACHABLE
### **文章摘要****标题**:`ERR_ADDRESS_UNREACHABLE` 错误排查指南(Linux & Windows)**核心内容**: 本文针对访问服务器时出现的 `ERR_ADDRESS_UNREACHABLE` 错误,提供了详细的排查步骤和解决方案,涵盖网络连接、防火墙设置、端口检测等关键环节,适用于 Linux 和 Windows 系统用户。**关键排查步骤**: 1. **网络连接检查**:确认主WiFi连接,排除副WiFi导致的访问限制。
2022-02-17 13:34:49
69685
5
原创 【无标题】解决as idea安装插件“plugin xxxx is incompatible“
最近as安装中文包出现了问题,去官网下载也不支持最新的版本,停更好几个月了,不支持最新版.一、解决办法去j家插件官网下载好插件,解压到目录后,打开plugins.jar中的META-INF/plugin.xml,注释掉idea-version标签和incompatible-with标签,如图2.保存重新安装...
2021-12-30 15:27:39
1626
原创 【安卓10修改系统文件】安卓10修改系统文件hosts
@安卓前言笔者最近需要修改/etc/hosts文件,加速上网,发现安卓不让我修改"Read-only file system",查阅了很多文章,尝试过很多方法,一直无法解决,现在已经找到!解决方法root权限下执行:mount -o remount,rw /system可能会报 mount: ‘/system’ not in /proc/mounts那也没关系,直接执行 mount -o remount,rw /继续执行echo -e "127.0.0.1 localhost \n:
2021-12-16 22:14:57
4439
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅