自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Android Chromium 沉浸式地址栏

地址栏在chromium内核中只是一个虚拟的概念,通过Android的开发者模式来观察Chrome浏览器的地址栏我们会发现,地址栏是一个原生的控件,他与网页是无关的,chromium在内核中根据用户的滑动手势,动态的调整网页viewport的偏移同时将偏移位置通知到应用层,应用层基于此偏移动态的调整地址栏控件的偏移位置(margin or translation)从而达到地址栏与网页根据用户手势沉浸式联动的效果。

2023-09-24 17:45:40 211 1

原创 Android FFmpeg + OpenGL ES YUV Player

1)打开封装格式上下文// 1、创建1个空的上下文对象// 2、打开指定资源地址的封装格式上下文2)找到视频流// 3、从封装格式中解析出所有的流信息// 4、遍历流找到视频流i++) {3)根据流信息打开对应的解码器// 5、找到解码器,这个时候解码器对象还没有打开,不能用// 6、为该codec创建1个对应的空上下文// 7、将指定流中限定的解码器参数输入解码器上下文中// 8、通过解码器上下文打开解码器// 以下为视频相关的信息// 帧率。

2023-09-16 17:19:12 246

原创 Android OpenGL ES 渲染 YUV

加载着色器根据指定类型(GL_FRAGMENT_SHADER、GL_VERTEX_SHADER…)创建一个空的OpenGL Shader给创建出来的Shader输入GLSL代码编译shader获取编译过程中的状态信息GL_COMPILE_STATUS 获取编译状态,0表示编译失败GL_INFO_LOG_LENGTH 获取编译中的日志字符长度根据(4)中的日志长度得到编译中的日志信息清除Shader创建着色器程序创建一个空的着色器程序为着色器程序添加Shader。

2023-09-16 17:18:22 291

原创 MediaCodec Video To Bitmap

设置解封装器的文件来源,解封装器会从视频原件中解析音频、视频、字幕等数据轨道索引;设定Extractor接下来读取数据的轨道索引,后续读取数据皆从此轨道中按序读取;从轨道中读取数据,偏移默认为0,返回值>0则是读取的数据大小,返回值<0则代表已到轨道数据末尾,已读完;移动到下一帧,readSampleData读取下一帧数据,return true表示还没读完,false表示已经到文件末尾,已读完;

2023-09-16 17:17:08 220

原创 Android OpenSL ES 音频播放器

OpenSL ES (Open Sound Library for Embedded Systems) 是一个跨平台、无授权费用的音频处理库,它为移动多媒体设备的应用开发者提供了标准化、高性能、低响应的音频功能实现方法,统一的 API 使得通过 OpenSL ES 开发的音频处理程序能够很好的在多个平台上运行。

2023-09-16 17:14:13 295

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除