
Android TV开发总结
Android TV 焦点问题
Android TV 适配问题
Android TV 优化问题
Android TV log分析
Android TV 滚动问题
Android TV 按键问题
码农突围
这个作者很懒,什么都没留下…
展开
-
再见!杭州!再见!阿里巴巴!
最近和在北京的朋友老冯聊天,老冯说他要离开阿里了,我和老冯是在14年北京租房时认识的,当时老冯招租室友,我加了微信,约看房,后来才知道他也是个程序员,但是因为我那时没啥钱,最后和我另外一些做开发朋友一起合租了。虽然没有一起合租,但是都是程序员,都是一个方向的开发,也经常和老冯一起玩。关于老冯的详细介绍,可以看去年写的这篇文章《在阿里工作几年,女友跑路,晋升无望,买不起房,我活成了一个笑话~》当时我建议老冯跳槽,但是老冯觉得再自己最落魄的时候去市场跳,没有优势,所以想再争取升了P7,然后再走。所以他去年下半原创 2020-06-05 22:05:00 · 7495 阅读 · 14 评论 -
流媒体解码及H.264编码推流
简介相关理论程序流程Opencv解析视频流像素格式转换FFmpeg进行H.264编码FFmpeg进行格式封装和推流这里我们使用了FFmpge的sdk和Opencv的sdk。为了方便测试,我们直接使用在线的rtsp网络流。rtmp://live.hkstv.hk.lxdns.com/live/hks这个是香港卫视的rtsp流,可以用vlc播放器测试是否可以播放。FFmpeg支持的像素格式1 所有的像素格式的名称都是以“AV_PIX_FMT_”开头2 像素格式名称后面有“P”的,代表是p转载 2020-05-08 20:36:39 · 2165 阅读 · 1 评论 -
HLS直播(M3U8)回看和下载功能的实现
流媒体始终是大众生活娱乐最为重要的一个部分,同时也是技术开发中比较有难度的,尤其是直播,不仅功能是点播无法替代的,开发难度也要比点播大,里约奥运会等重大体育赛事大家只能通过直播观看比赛,体会现场观看的紧张和刺激,点播是无法做到的。如今我们也会有直播回看和下载的需求,一些APP包括我们自己的项目也已经实现了这些功能,网上讲解这部分技术的知识相对较少,而且有很多都不是很靠谱,我这里抛砖引玉,给大家提...转载 2020-04-30 21:14:06 · 7047 阅读 · 0 评论 -
仿最新BiliBili客户端(已开源)
前言该项目仿照B站的Android客户端进行开发,初衷是想学习流行的Android技术,但是没有数据资源。因为喜欢逛B站,而且B站的Android客户端又是Google推荐的MD设计规范,于是花了些时间研究B站的网络请求,最后成功搞定,与@Android_ZzT同学达成一致,合作开发这个模仿B站的练习项目。该项目在工作之余开发,所以更新时间不定。前期准备一、B站网络请求抓包首先是对B站的网...转载 2020-04-27 20:37:38 · 2912 阅读 · 0 评论 -
一款使用RxJava+Retrofit+MVP的快播App开源啦!
《快播》,仿网易云音乐UI,整体采用RxJava+Retrofit+MVP的架构,支持在线视频播放,在线图片浏览等功能。用到第三方开源库:ButterKnife:依赖注入框架glide:图片加载retrofit:网络请求jieCaoVideoPlayer:播放器抓取接口用于数据展示效果图如下:基类:package com.zmj.qvod.base;impor...原创 2020-04-17 19:48:37 · 1514 阅读 · 0 评论 -
FFmpeg设置OpenMax硬件编码
OpenMax是一个统一的多媒体框架, ffmpeg中支持H264的OpenMax编码, 本文记录如何开启OpenMax编码。ffmpeg版本: 4.0OpenMax头文件版本: 1.2首先下载ffmepg,然后是OpenMax的头文件, 解压头文件的zip之后得到头文件拷贝到NDK对应平台的include中,如图后在configure的时候加入–enable-omxconfi...转载 2020-04-16 19:18:17 · 1763 阅读 · 0 评论 -
视频画中画效果,拖动进度条可以seek到相应视频帧显示
在视频开发中,我们常常看到这样的效果,拖动进度条时,或是在进度条上方或是在屏幕中间,显示拖动进度条位置时刻的某一帧画面。这个需求,如果是你,你会如何做?通常一个需求,不仅要考虑实现,还有考虑一些是否有性能上影响。下面我想到的4个方案:1、在拖动过程中,可以通过TextureView来显示预览图,拖动进度条到某个position后,通过textureView.getBitmap()拿到对应...原创 2020-04-15 20:32:17 · 2353 阅读 · 0 评论 -
移动端图片格式调研
图片通常是移动端流量耗费最多的部分,并且占据着重要的视觉空间。合理的图片格式选用和优化可以为你节省带宽、提升视觉效果。在这篇文章里我会分析一下目前主流和新兴的几种图片格式的特点、性能分析、参数调优,以及相关开源库的选择。几种图片格式简介移动端图片类型的支持情况静态图片的编码与解码JPEGPNGWebPBPG动态图片的编码与解码GIFAPNGWebPBPG动图性能对比...转载 2020-04-14 21:35:54 · 1887 阅读 · 0 评论 -
程序员如何与产品经理优雅的干架
早前,平安产险科技一名外包程序员和一名外包产品经理干架的视频几乎在互联网圈都传遍了,因为产品提了一个需求:要求用户App的主题颜色能根据手机壳自动调整。首先说这个需求对于应用开发工程师来说,确实是有点奇葩,当然并非不能实现。这块涉及图形图像处理,用机器学习和人工智能来提取图像颜色,这是基本图像识别过程,对于采集图像,可以提示对着镜子自拍一张,上传图片,通过大量的训练数据,来识别手机体颜色。当然并...原创 2020-04-10 22:07:07 · 4625 阅读 · 8 评论 -
美团猫眼电影Android模块化实战总结
1 写这篇博客的初衷首先一句话概括:我想把这几个月做的事情记录下来,并且希望尽量详细,希望读者读了这篇文章能够知道项目进行模块化,项目改业务框架可能会遇到哪些问题,具体每个步骤都做什么,而不是大致的了解。现在很多人都在谈模块化,网上有一大堆的博客实践都在讲这个。很多谈的只是模块与模块之间的解耦,并且大部分讲的是通过router路由进行解耦,其他谈的不多,而且不乏泛泛而谈。但将一个app真正做到...转载 2020-04-08 21:41:57 · 3813 阅读 · 0 评论 -
音视频的采集、编码、封包成 mp4 输出
使用 Android Camera API 完成音视频的采集、编码、封包成 mp4 输出基于android.hardware.Camera,创建一个横屏应用,实时预览摄像头图像,实现录像并输出MP4的功能。1、申请权限<!-- 需要录制音视频权限和写外部存储权限 --><uses-permission android:name="android.permission.WR...转载 2020-04-03 21:37:55 · 1754 阅读 · 0 评论 -
使用MediaCodec和RTMP做直播推流
目前开源的项目或市面上的Android直播客户端主要是用ffmpeg来实现推流的。本文将介绍使用Android原生的视频编码类MediaCodec实现直播推流。数据流及大致原理这里所说的直播,就是将你的客户端产生的视频数据,实时发送到服务器上。服务器上的数据再实时地发送到播放客户端上。以视频数据为例:获取Camera画面首先是摄像头拍摄得到原始画面数据,这里原始画面数据的格式我们不用管...转载 2020-04-01 20:43:42 · 1869 阅读 · 0 评论 -
OpenGL中 Canvas 性能分析
本文将通过分析部分源码,描述 Android 里面的 Canvas 的大致实现。并且会对 Canvas 的性能做一定分析,提供对 Canvas 的使用建议。GLES20RecordingCanvas 类这个类是什么?为什么我从没用过?我们来看看它的代码:class GLES20RecordingCanvas extends GLES20Canvas { ...}class G...转载 2020-03-31 20:11:31 · 1936 阅读 · 1 评论 -
ijkplayer中遇到的问题汇总
在做音频播放的时候,很多公司使用的是开源的ijkplayer播放器,ijkplayer底层是基于ffmpeg,在某机型上面可能常常遇到各种问题。今天整理了大家在使用ijkplayer中遇到的问题,以及根据ijkplayer社区issue和solution方案。如下:1、直播技术总结(三)ijkplayer的一些问题优化记录https://blog.youkuaiyun.com/hejjunlin/arti...原创 2020-03-24 20:22:00 · 3337 阅读 · 1 评论 -
吐血干货,直播首屏耗时400ms以下的优化实践
导读:直播行业的竞争越来越激烈,进过18年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验。最近在帮做直播优化首开,通过多种方案并行,把首开降到500ms以下,希望能对大家有借鉴。背景:基于FFmpeg的ijkplayer,最新版本0.88版本。拉流协议基于http-flv,http-flv更稳定些,国内大部分直播公司基本都是使用http-flv了,从我们实际数据来看,http-...原创 2020-03-17 22:51:42 · 2005 阅读 · 0 评论 -
Python+Android进行TensorFlow开发
Tensorflow是Google开源的一套机器学习框架,支持GPU、CPU、Android等多种计算平台。本文将介绍在Tensorflow在Android上的使用。Android使用Tensorflow框架需要引入两个文件libtensorflow_inference.so、libandroid_tensorflow_inference_java.jar。这两个文件可以使用官方预编译的文件。如...转载 2020-03-16 21:45:56 · 1663 阅读 · 0 评论 -
短视频秒播优化实践(二)
之前我们介绍了在线短视频秒播优化的方方面面,从服务器,cdn部署接入,数据连接/获取,客户端缓存,出帧策略,到视频文件I帧位置等。今天从视频文件格式的另外一个角度介绍,MP4文件的box排列顺序是如何影响,在线短视频的播放以及秒播优化的。MP4文件中的所有数据都装在box中 (iso-14496-12/14)(QuickTime中为atom)即mp4是由若干个box组成的先简单...转载 2020-03-13 22:21:00 · 2038 阅读 · 0 评论 -
上班一个月,后悔当初着急入职的选择了
最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...原创 2020-03-08 21:03:18 · 75752 阅读 · 66 评论 -
Android TV开发总结(一)构建一个TV app前要知道的事儿
前言:近年来,智能电视的发展如火如荼,Googel 也在大力推进TV及穿带设备的发展,在互联网的风口,是猪也会飞,这句话并不是没有道理的。传统电视机厂商,基本都转型致力于智能电视的相关业务,今天的Agendda如下:- 处理电视硬件- app上检查电视设备- 处理不支持的硬件features- Declaring hardware requirements for TV原创 2016-10-12 07:33:05 · 41214 阅读 · 9 评论 -
Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
前言:上篇是介绍构建TV app前要知道的一些事儿,开发Android TV和手机本质上没有太大的区别,屏大,焦点处理,按键处理,是有别于有手机和Pad的实质区别。今天来介绍TV中Metro UI风格,并结合实例说明。Android TV发展离不开Metro UI,先看最新的泰捷TV的会员区效果,属于电影的Metro风格,如下:原创 2016-10-14 07:13:37 · 18815 阅读 · 13 评论 -
Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
Android TV 开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。焦点就是让用户知道的直接交互行为。 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果. 边缘移动时,会出现焦点丢失的状况. 有时想直接定位到某个位置上. android提供了一些焦点相关的属性,在现有的框架层下通过设置View的属性来获得焦原创 2016-10-17 19:26:14 · 17996 阅读 · 3 评论 -
Android TV开发总结(四)通过RecycleView构建一个TV app列表页(仿腾讯视频TV版)
前言:上一篇中,介绍了TV开发的焦点一些坑,很多人在公众号反应写一篇关于RecycleView相关的案例,今天就来实现用RecycleView+GridLayoutManger仿腾讯视频TV版(云视听·极光)的电视剧的列表页 先看下云视听·极光的电视剧列表页的效果图:原创 2016-10-19 18:29:51 · 10521 阅读 · 5 评论 -
Android TV开发总结(五)TV上屏幕适配总结
前言:前面几篇总结一些TV上的小Sample,开源到GitHub: https://github.com/hejunlin2013/TVSample, 点击链接,可以持续关注。今天总结下TV上屏幕适配.:看下Agenda:一、屏幕适配的一些背景知识二、TV屏幕适配怎么适配?有哪些规则?三、多屏幕适配,android读取res/drawable优先级是什么?四、屏幕分辨率及density 、densityDpi代码原创 2016-10-21 18:32:39 · 22120 阅读 · 11 评论 -
Android TV开发总结(七)构建一个TV app中的剧集列表控件
前言:剧集类控件,在TV app中非常常见,今天将介绍构建一个TV app中的剧集列表控件,此控件上传到我的Github: https://github.com/hejunlin2013/EpisodeListView, 喜欢可以star。Agenda如下:原创 2017-02-05 18:26:12 · 5188 阅读 · 5 评论