相机录像新姿势-OpenGL共享上下文+MediaCodec

一、前言承接上一文章Camera无变形任意尺寸预览,我们已经实现了无形变的任意尺寸的相机画面预览。接下来要完成相机的相关录像、拍照、扫码等功能,最重要也是最难的就是录像部分。 最终示例代码可以参考我的Github: iCamera。 二、技术要求我们要实现的录像功能技术要求如下: 所见即所得,预览...

Camera无变形任意尺寸预览

在以往做Camera应用开发时,遇到一个问题,就是相机的预览如何做到在任意尺寸完全无变形的画面预览与视频录制。做过相机应用开发的朋友都知道,相机的预览尺寸并不是可以随意设置的,而是需要在支持的预览尺寸中选择一个,你的预览的view大小必须与选择的尺寸相匹配,才能保证画面不变形,但是这在实际开发中是无...

J2V8深度绑定机制分享

在使用J2V8的过程中,一个比较让人头疼的问题就是,双层(Java层/JS层)数据不同步的问题,产生这样的问题就在于两层各自修改了数据以后,没有把最新的数据及时通知给对方。

软键盘高度监测最佳实践

最近终于总结出最佳的软键盘高度监测方案了,特此分享出来。源码在此:KeyboardObserver.kt 视觉效果当开启showDebug时候,可以看到这样的可视化的键盘高度监测。 源码分析简单来说,这里说通过两个PopupWindow来实现的键盘高度测量。一个用于测量当前屏幕状态可绘制区域的最大高...

难忘的调试技巧

这里用于总结一些在工作中发现的调试技巧。 Handler是否繁忙?这一技巧来自于最近工作中,做子线程渲染时,发现有卡顿、手势操作延迟过大的情况,而渲染的子线程是一个HandlerThread,为了判断此线程是否有大量耗时操作,探索出一些技巧。 判断HandlerThread是否繁忙可以通过对应的Ha...

Jitpack托管库

以前只是用过别人托管在Jitpack上的库,自己的库都是托管在MavenCentral上,但是MavenCentral使用起来,相比Jitpack还是有些麻烦。经过简单尝试和学习,了解了Jitpack的使用,做一下简单记录。 我第一个托管在Jitpack上的库——J2V8Helper Step 1:...

Android的clipToXXX

最近处理工作bug的过程中,有一个需求是这样的,两层view,父view包含着子view,然后子view能显示出的区域,要以父view的背景来过滤。没看懂是不是?参考下图:

Kotlin Native从初识到放弃

此贴用于记录对Kotlin Native从初识到放弃的过程,因为还不清楚这一平台的开发能力上限多高,不排除用的好,会一直用下去。以下Kotlin Native会用KN来代替。 开始首先,下载IDEA,我这里用的是社区版,社区版已经足以应对大多数情况了。然后,新建一个KN的项目。IDE会自动生成hel...

难忘的bug

此贴是为了记录日常开发过程中,遇到的一些让人难忘的bug。 MediaPlayer: surface has already been released kotlin ?.的陷阱与缺陷 surface has already been released场景:MediaPlayer做跨进程的视频播...