自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

红涛在反思的blog

关注音视频前后端,也会分享记录一些工作、财务、感情、生活方面的思考与成长...

原创 音视频学习思考实践活动进展Post

2019-10-12 ijk预加载 moov段前置 so远程加载 faceunity

2019-10-12 17:39:01 74 0

原创 阅读清单体系

2019阅读 读书计划 读书日志 分类书架 技术 其他 。。。。

2019-09-24 15:16:22 96 1

原创 移动端音视频开发学习资料汇总

blog: 清华大学计算机系毕业,专注于流媒体技术 https://blog.piasy.com/ 华科,七牛直播sdkAndroid开发组长,专注于流媒体技术 http://blog.51cto.com/ticktick 剑西 http://blog.csdn.net/mabeiji...

2019-03-22 10:26:18 1032 0

原创 疑难问题记录wiki

初衷: 有的时候,遇到的问题只是想简单记录一下,篇幅及内容都不值得专门写一篇博客,特开此贴,记录遇到的一些问题: 深拷贝、浅拷贝 问题:两个列表,allMovies和selectMovies,从allMovies中选择的movie会添加到selectMovies中去,如果你改变了allMovies...

2018-12-15 15:40:42 172 0

原创 对外分享合集

2018年技术分享 主题:RxJava分享 时间:20180301 点击下载ppt 2017年技术分享 主题:glide分享 时间:2017.10.13 点击下载ppt 主题:gradle分享 时间:2017.4.13 http://blog.csdn.net/a91062...

2016-08-08 10:39:19 1588 3

原创 so库远程加载方案管中窥豹

0x01.为什么要so库远程加载?(又叫动态加载) so体积过大,如果直接集成在apk里面的话,会造成包体积膨胀。所以有了这种方案。运行app的时候,在需要的时候再去下载so库。这样可以减少apk的体积,并且对于推广收益很大。当然不只so库可以这样,所有体积比较大的资源都可以采用这种方案。 0x0...

2019-10-25 15:57:10 89 0

原创 说说重构那些小事三:重读《重构》

0x01.《重构》一书 为了做这期重构,自己也是专门又饭看了下《重构》,这本书,之前跟同事共读的时候,看过一遍。不过实践的机会不多。 这次重读有一些思考。 读书重要在于理解,而不是在于数量,在于读了多少本书。理解,比如对于重构这本书,理解更多是能够自己打散书的目录逻辑,在自己心里重建一套只有的逻...

2019-09-30 18:35:38 39 0

原创 说说重构那些小事二:小视频落地页重构二期

0x01.二期的主要目的 二期的主要是为了解决DetailAdapter代码膨胀的问题。目前DetailAdapter代码量已经达到了4300行。里面充斥了网络请求、业务逻辑、埋点逻辑、弹窗逻辑等等。在最小化对功能的影响的前提下(因为落地页有很多关键指标的埋点,包括商品浮层、播放loading率、...

2019-09-30 18:11:18 55 0

原创 说说重构那些小事一:小视频落地页重构一期

最近在针对视频落地页做一系列的代码重构。工作之余,又把之前的《重构:改善代码的既有设计》复习了一下。有了一些新的感悟和想法。故而有了这一系列的文章。规划的是讲一讲自己在项目中的心路思考及对重构的新认识。

2019-09-30 16:10:20 163 0

原创 ijkplayer播放器h265解码能力调研

0x01.h264编解码 H.264: H.264/AVC项目的目的是为了创建一个比以前的视频压缩标准,在更低的比特率的情况下依然能够提供良好视频质量的标准(如,一半或者更少于MPEG-2,H.263,或者MPEG-4 Part2 )。同时,还要不会太大的增加设计的复杂性。 优势: 1)网络亲和性...

2019-09-24 12:21:08 1910 0

原创 音视频开发进阶指南《第五章:实现一款播放器》的理解笔记(todo)

问题: 1.c++? 2.opengl es opensl es这些API都不是特别了解? 3.画个类图,大致理解一下吧,标注好每一块的内容

2019-09-23 20:08:14 110 0

原创 慢思考:修炼你的哲学,做自己的英雄

离开学校得有4-5年了,一旦离开学校,很多既往的观念都不再适用。比如你会遇到很多问题,这些问题包括技术问题、生活中的遇到的问题、感情中遇到的问题、工作中遇到的问题等等,并且其中的大多数都不是黑白分明、对错井然的,更多是你从自己当下的认知去思考和考虑,从很多疑惑到稍微能够思考明白一点点,然后涨一点点...

2019-09-23 00:18:45 84 0

原创 动手写一个抖音首页的效果

如何实现一个抖音首页的沉浸式视频播放效果 01.疑问 怎么实现一个顺畅的类似抖音的沉浸式播放效果 02.方案 方案1:viewpager+复用,低端机教卡 方案2:recycleview,比较顺畅 方案3:viewpager2 03.实现 public class TestActivity ext...

2019-09-20 19:28:38 164 0

原创 debug小锦囊

一些debug的简单技巧 不知道哪里调用到了finish方法? 在finish那里打个点,可以看到整个的引用链,由果可以得因 看log日志 如果涉及的方法太多,各种生命周期方法,状态的变换,可以打日志,就会发现少了什么,状态值的问题 看竞品的布局 解决在Android Studio 3.2找不到A...

2019-09-20 19:27:51 127 0

原创 ijkplayer系列14:从入门到进阶问题树梳理

ijkplayer系列14:从入门到进阶问题树梳理 基础准备 语法基础: C语言以及JNI开发是必备的能力 C语言语法简单复习 https://anacz.blog.csdn.net/article/details/100065438 不过说实话,在看源码的时候,感觉对指针的理解还是有限,不熟练 ...

2019-09-20 19:26:03 159 0

原创 ijkplayer系列13:video_refresh_thread

ffp_video_thread 这个线程用来处理视频解码。解码的调用流程如下: 以上可以看出,解码流程主动分为以下三部分: 初始化解码器。 开启解码器,如果配置了硬解则会尝试去创建硬解码器,没有配置硬解或者尝试创建硬解码器失败则创建软解码器。 启动解码线程,可以发现硬解和软解最终进入的方法是...

2019-09-20 19:06:05 125 0

原创 ijkplayer系列12:video_refresh_thread

video_refresh_thread 该线程负责图像的渲染,先来看下整体流程: 从上面的流程图可以得知,最终根据格式的差异分成了三个分支,我们先来看下func_display_overlay_l()的源码,然后再继续深入三个分支中。 static int func_display_overl...

2019-09-20 19:04:02 162 0

原创 ijkplayer系列11:read_thread

ijkplayer的核心代码在ff_ffplayer.c中,以视频为例(音频类似),其中又以三个线程和两个队列最为核心。 三个线程分别为: • read_thread:读取流。 • video_refresh_thread:图像渲染。 • ffp_video_thread:图像解码,需要一提的是,...

2019-09-20 18:59:49 139 0

原创 低端机降级

最近在做一个低端机降级的需求。主要方案就是使用类似device-year-class的策略对设备分级,对于低端机用户可以关闭复杂的动画,或者是某些功能;使用565格式的图片,使用更小的缓存内存等。在现实环境下,不是每个用户的设备都跟我们的测试机一样高端,在开发过程中我们要学会思考功能是不是要对低端...

2019-09-11 18:44:25 94 0

原创 C语言语法简单复习

word编写 最近在看ijk源码,发现ijk底层源码基本都是C语言编写的。看来有必要简要回顾下大学的c语言语法了。 01. 分类 C语言 备注 语言由来 1972 年,为了移植与开发 UN...

2019-08-25 17:31:27 1051 1

原创 Android图形架构学习笔记

以下简单总结来自Android官网,稍作总结: https://source.android.google.cn/devices/graphics 概览 Android应用开发者可通过两种方式将图像绘制到屏幕上:使用 Canvas 或 OpenGL。 android.graphics.Canvas...

2019-08-25 16:23:04 92 0

原创 flutter进阶

flutter进阶 之前调研过FN和flutter,附上调研链接: RN 调研学习(进行中) https://blog.csdn.net/a910626/article/details/87371134 flutter调研 https://blog.csdn.net/a910626/article...

2019-08-23 16:54:19 1747 0

原创 ijkplayer系列10:流程分析-开始工作

开始工作流程如下

2019-08-16 11:44:50 91 1

原创 ijkplayer系列9:流程分析-准备工作

准备工作流程如下:

2019-08-15 15:20:22 228 0

原创 ijkplayer系列8:流程分析-设置播放源

设置data source流程如下

2019-08-09 20:14:05 211 0

原创 ijkplayer系列7:流程分析-设置surface

整个流程的调用虽然嵌得比较深,但处理的事情比较简单,多数情况下都是一个方法调用另一个方法。

2019-08-08 23:01:41 88 0

原创 ijkplayer系列6:流程分析-初始化IjkMediaPlayer对象

初始化对象流程如下图 IjkMediaPlayer提供了两个构造函数,分别如下:

2019-08-08 22:56:02 157 0

原创 ijkplayer系列5:流程分析-ijkplayer状态图

从源码和注释信息中,我们可以得到下面的状态图

2019-08-08 22:55:21 307 0

原创 ijkplayer系列4:消息队列MessageQueue

jkplayer中传递消息一般采用的是生产者-消费者模式。大致原理如下: 生产者可以位于任何一个线程向队列中添加消息,而消费者(通常只有一个)则通过一个独立的线程不断地从队列中获取消息,当没有消息时阻塞(也可以配置成不阻塞,但通常我们会阻塞),当队列中止使用时线程退出。队列何时中止一般由生产者决...

2019-08-08 22:54:34 151 0

原创 ijkplayer系列3:编译ijkplayer&集成ijkplayer

至此,我们的所有编译工作就完成了,在这里我有稍微省略了几个步骤,如果编译途中碰到错误,最好照着github上面的步骤一步步做下来。进入ijkplayer/android/ijkplayer目录,这里面的所有东西就是我们编译后的产出,也是后续项目中会使用到的库文件和源文件。

2019-08-08 22:53:32 160 0

原创 记一发类型强转的bug

01 背景 最近在对视频落地页做一期简单重构,主要是把holder拆分成多个block,视频落地页有很多引导view是通过setLayoutParams的方式add进来的,这就为拆分埋下了一些隐患。 02 问题描述 铛铛铛,拆分完成,哈哈哈,滑动几下,好像也没啥问题奥。开心。挺有成就感,等等,怎么...

2019-08-02 16:19:27 109 0

原创 关于编码规范记一篇blog(完善中)

类内容定义的顺序 https://www.jianshu.com/p/200813474cd6 类内容定义的顺序 l 静态成员变量 / Static Fields l 静态初始化块 / Static Initializers l 成员变量 / Fields l 初始化块 / Initializer...

2019-07-27 14:55:12 51 0

原创 AndroidVideoCache研究

AndroidVideoCache研究 01.AndroidVideoCache + ijk 我们想让ijk支持边下边播的能力,通过AndroidVideoCache就可以实现,AndroidVideoCache的设计很优雅,能够解耦不同的播放器,比如可以支持ijk、系统播放器mediaplaye...

2019-07-19 15:05:01 541 0

原创 Android播放器专题相关知识学习笔记(持续完善中)

播放器 ijk exo 等等 边下载边播放+缓存 AndroidVideoCache优化 https://blog.csdn.net/weixin_33806509/article/details/87598882 AndroidVideoCache 框架源码分析 https://www.cnbl...

2019-07-18 16:09:50 99 0

原创 Android各种bar的适配(包括刘海屏)

Android各种bar历史变迁: 1.关于 TitleBar、ActionBar、ToolBar、StatusBar Android 3.0 以前 android3.0-android5.0 actionbar android5.0以后 ToolBar 2.状态栏的历史以及更正错误叫法 沉...

2019-07-18 14:53:46 559 0

原创 一些音视频相关概念学习笔记

什么是窄带高清? 窄带节省不必要的bits,高清是把bits分配到最能产生价值的地方,从而实现,在同样的带宽条件下收看更加清晰的画质。 https://www.jianshu.com/p/3662ed5fd0e7 https://blog.csdn.net/maoreyou/article/det...

2019-07-14 14:56:29 171 0

原创 ijkplayer系列2:ijkplayer java层面源码分析

todo

2019-06-25 21:13:37 247 0

原创 ijkplayer系列1:ijkplayer介绍

## ijkplayer简介 基于FFmpeg的轻量级Android/iOS视频播放器 https://github.com/Bilibili/ijkplayer ## 导入方式 ### gradle导入

2019-06-25 21:12:22 1526 0

原创 Android各种性能优化工具一览

在软件开发过程中,想必很多读者都遇到过系统性能问题。而解决系统性能问题的几个主要步骤是:

2019-05-15 00:59:42 169 0

原创 2019.04-05月记录

paint 需求:做一个点击关注变成对号的动画 参考资料: Android Canvas 方法总结 https://www.jianshu.com/p/f69873371763 Android高级进阶——绘图篇(七)Canvas 与 图层(一) https://www.jianshu.com/p/...

2019-05-15 00:32:35 90 0

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