banner
jzman

jzman

Coding、思考、自觉。
github

Android

cover

IjkPlayer系列之播放器创建流程

今天介绍下 IjkPlayer 的播放器创建流程,本文开始将正式开始 IjkPlayer 的源码阅读之旅,主要内容如下: 初始化 so Java 层播放器创建 IjkMediaPlayer 结构体 Native 层播放器创建 调用流程图 阅读之前可以先看前面几篇文章: 如何…
cover
cover
cover

OpenGL ES渲染播放视频

前面两篇文章主要了解了 OpenGL ES 的基本使用及其坐标系的映射,如下: Android 中的 OpenGL OpenGL ES 投影和视图变换 下面将使用 MediaPlayer 和 OpenGL ES 来实现基本视频渲染以及视频画面的矫正,主要内容如下: Surf…
cover
cover
cover
cover

OpenGL ES投影和视图变换

上篇文章介绍了 Android 中的 OpenGL 以及坐标映射等,在 OpenGL ES 环境中,通过投影和相机视图,显示的绘制对象更接近于眼睛看到的实物,这种呈现方式是通过对绘制对象坐标进行数学转换来完成,这里介绍一下投影和相机视图相关知识,文中代码案例变更可以参考前一篇文章…
cover
cover
cover

Android中的OpenGL

前面有关 Android 音视频的渲染都是使用MediaCodec进行渲染,MediaCodec也有自己的弊端比如无法进行视频的编辑处理,而视频可以 OpenGL ES 来进行渲染,可以很好进行处理,比如添加滤镜等,这里介绍下 Android 中 OpenGL,也就是…
cover

Android音频播放AudioTrack详解

前面几篇文章介绍了MediaCodec、MediaMuxer、AudioRecord等音视频相关知识,这些都是 Android 音视频开发中必须掌握的,相关文章链接如下: Camera2、MediaCodec 录制 mp4 Android 原生编解码接口 MediaCodec…
cover

AudioRecord采集音频数据及合成

本文介绍些 Android音视频开发中的AudioRecord的使用,案例将会在前面MediaCodec录制MP4的基础上进行,使用AudioRecord将音频数据合成到MP4中,Android音视频同系列文章如下: Camera2、MediaCodec 录制 mp4 Andr…
cover

MultiType开源项目源码分析

PS:前两天有事,路过大学特意进去看了一下,熟悉的场景不熟悉的人,时隔几年,再也回不去了。 先看下该项目作者的介绍,MultiType 就是一个多类型列表视图的中间分发框架,它能帮助你快速并且清晰地开发一些复杂的列表页面,数据驱动视图,支持布局类型和 viewBinder…
cover
cover
cover
cover
cover
cover
cover
cover

Android原生编解码接口MediaCodec详解

PS:有些想法可以先开始,慢慢完善才是好的选择。 MediaCodec 是 Android 中的编解码器组件,用来访问底层提供的编解码器,通常与 MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm、Image…
cover
cover

Camera2、MediaCodec录制mp4

PS:做想做的事,每天至少做一点,不求做多少,慢慢改变。 了解了音视频的相关知识,可以先阅读下面两篇文章: 音视频开发基础 音频帧、视频帧及其同步 本文的主要内容是通过 Android 原生的硬编解码框架 MediaCodec 和复用器 MediaMuxer 实现 mp4…
cover
cover

自定义View实现字母导航控件

今天分享一个以前实现的通讯录字母导航控件,下面自定义一个类似通讯录的字母导航 View,可以知道需要自定义的几个要素,如绘制字母指示器、绘制文字、触摸监听、坐标计算等,自定义完成之后能够达到的功能如下: 完成列表数据与字母之间的相互联动; 支持布局文件属性配置; 在布局文件中能…
cover

Android 多进程运行机制及IPC

今天总结下 Android 多进程运行机制以及 IPC 介绍,内容如下: Android 中的进程 Android IPC 介绍 开启多进程模式 Android 多进程运行机制 首先进程可以理解为独立运行的程序,当某个程序启动时,系统将会为该程序创建一个进程…
cover
cover

编译时注解详解及实现ButterKnife

PS:人是一种很乐于接受自我暗示的生物,你给了自己消极暗示,那么你很容易变得颓废,如果你给了自己积极暗示,那么你也会变得积极起来。 今天看一下编译时注解的相关知识,相信手动实践后你会更容易理解像 Dagger、ARouter、ButterKnife…
cover

自定义View中为何match_parent和wrap_content效果一样

PS:如果不能预测未来是什么样的,那么就好好做好当下。 今天来分享一个我在自定义 View 中遇到的问题,如果分析有误,还望各位指出,在自定义 View 的过程中一定会遇到一个问题,自定义 View 没有问题,唯独在自定义的 View 中 match_parent 和…
cover

LayoutInflater.Factory使用及源码解析

PS:事实证明,恐惧什么你就会逃避什么,一定要相信自己。 LayoutInflater.Factory 是提供给你的一个加载布局使用的回调接口 (Hook),可以使用 LayoutInflater.Factory 来自定义布局文件,实际上就是可以在…
cover

Android Jetpack组件之Paging Library篇

阅读本文之前,可先阅读同系列 Android Jetpack 组件文章如下 : Android Jetpack 组件之 Lifecycle 篇 Android Jetpack 组件之 LiveData 篇 Android Jetpack 组件之 ViewModel 篇 A…
cover

Android Jetpack组件之使用可观察的数据对象

PS:真正的努力发生在行动之后。 上篇文章介绍了 BindAdapter,Android Jetpack 组件系列文章如下: Android Jetpack 组件之 Lifecycle 篇 Android Jetpack 组件之 LiveData 篇 Android…
cover
cover
cover
cover

Android Jetpack组件之BindingAdapter篇

PS:往事如烟,要懂得剖析生活,不要在同一个地方摔倒两次,此后余年,需改变,更需主动 ,要笃定进取之心,勿恍恍而终日。 上篇主要是 DataBinding 的基本使用,Android Jetpack 组件系列文章如下 : Android Jetpack 组件之…
cover

Android Jetpack组件之DataBinding篇

前面总结了 ViewModel、LiveData 及 Lifecycle 架构组件的使用,可先阅读下面文章详细了解: Android Jetpack 组件之 Lifecycle 篇 Android Jetpack 组件之 LiveData 篇 Android Jetpack…
Ownership of this blog data is guaranteed by blockchain and smart contracts to the creator alone.