自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mr_x的博客

慢慢来,比较快

  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

原创 个人作品:《图逗表情包》

今年花了几个月的时间做了个小作品《图逗表情包》主要功能是编辑jpg,png,和gif图片。1.jpg,png,的编辑功能是涂鸦,加文字,加贴图,裁剪等。2.动图的编辑是加文字,倒放,截取,裁剪,链接(几个动图或视频合并成一个动图)3.录制后生成gif。4.服务器部分就是登陆,上传,分享等。已经上线,欢迎大家下载。下面放出几张截图...

2019-10-16 21:36:58 368 1

原创 MyFFmpeg-我的音视频练习app

这是我2018年一自学编写的关于音视频相关的一个作品。以练习为主功能如下图:所有的文件都在sdcard/FFmpeg/目录下视频源数据在sdcard/FFmpeg/video_src音频源文件在sdcard/FFmpeg/music_src播放器(倍速播放,跳转指定时间处)有视频剪辑,视频拼接,视频裁剪分辨率改变视频滤镜视频音乐(a文件的视频,和b文件的音频混合)图片水印...

2019-03-21 16:47:23 9530

原创 音视频之模拟今日头条列表视频

想着练习下学习下 ijkplayer ,但不知道做个啥,就想着做个今日头条类似的视频播放列表,当item滑出了可视区域就自动播放下一个视频,因为播放器需要opengl渲染,所以就需要glsurfaceview,最开始的思路就是每个item都有一个surfaceview然后新建一个IjkMediaPlayer.使用后发现还没加入播放等动作就已经卡顿的不得了。如下图:条状图就是手机开启了gpu呈现...

2019-04-15 21:00:35 6866

原创 音视频之视频倒放

视频倒放,就是将一个视频倒序播放是练习app中的在ffmpeg中本来就有自带的倒放相关的filter但是他的处理方式就是先把视频的所有帧都放入内存中,然后就倒序编码就可以了。这样对内存是个极大的压力,不过处理速度是还可以的。但是在手机上用这种方式处理,视频文件一大oom肯定会出现的。所以在手机上我还是借助了sdcard来处理,但是也不是直接将文件解码了,然后放入sdcard上,再...

2019-04-12 16:35:29 5922

原创 音视频倍速播放之sonic

播放器中有个重要的功能就是倍速播放,比如现在有很多在线教育,或者看电影,据说现在的年轻人几乎都是1.2,1.5倍速的播放了,我个人是1.2和1.5倍速使用较多。比如有的课程老师的语速比较慢,就调快点比较好。因为我的播放器同步策略是是使用的视频去跟着音频播放,比如音频播放到了12s的位置,那么视频只能播放到12s的位置,音频播放速度快了,那么只要视频解码跟得上那么就播放快了。最开始我想的是音频...

2019-04-10 22:14:17 12047 12

原创 音视频之解析flv文件实战

测试文件cuc_ieschool.flv使用相关工具如下:float2hex.exe(二进制转double的工具)对比工具:FlvAnalyzer二进制文件分析工具Uedit32.exeflv文件头(9+4 B)前三个字节 flv ,1 是版本 , 第五个字节(1/4/5) , 1 video , 4 audio , 5 video and audio脚本tag(scrip...

2019-04-04 11:45:09 1333

原创 音视频之编码相关

我使用的ffmpeg是3.4版本 对应的帮助文档是api文档是ffmpeg 3.4 api文档我们还是以项目项目地址中相关项目来学习,其中几乎所有相关功能都和编码有关系,比如视频剪辑,裁剪,分辨率等,都有。道理相通av_register_all();注册混合器注册编解码器result = avformat_alloc_output_context2(&afc_output,...

2019-03-30 14:38:02 476

原创 音视频之ffmpeg时间基

FFmpeg中有个比较重要的概念就是时间基。ffmpeg本身有个时间基,视频输入流有时间基,输出流有时间基,音频也是相同道理。主要的目的是方便他们自己内部计算。我们先拿视频播放器来举例,其中要对时间进行处理的是视频的时间,音频的时间,然后两者要进行同步。我们先看timebase的结构体:这就是一个分数我们播放一个视频打印日志发现视频的时间基是1/12800,这个128000怎么算出...

2019-03-26 10:48:58 10673

原创 音视频之解码相关

我使用的ffmpeg是3.4版本 对应的帮助文档是api文档是ffmpeg 3.4api文档AVFormatContext:容器相关结构体,比如MP4,flv等。AVCodecContext:编解码器相关结构体。AVCodec:编解码器参数相关结构体。AVStream 对流的抽象AVOutputFormat:对输出文件格式的抽象AvFrame:用来存原始帧数据,比如编码前的yuv数据...

2019-03-25 16:16:57 9246

原创 音视频之渲染yuv图片

音视频之opengl绘制三角形音视频之opengl渲染图片前一篇我们讨论了如何渲染一个普通图片(rgb)现在我们来讨论如何渲染一个yuv图片。什么是yuv我们这里有一个说的不错的文章yuv解释链接我们摄像头采集到的,最后我们用来显示的都是yuv数据。所以我们必须的理解yuv格式,yuv有很多种格式,什么yuv420p,yuv422等。需要学习的就在上面的连接进行学习。我们先看看下面效...

2019-03-17 22:28:55 9167 4

原创 音视频之opengl渲染图片

音视频之opengl绘制三角形首先来看看渲染效果我们先来看看关于纹理的坐标:他是如下图:顶点着色器代码:texture_vertext_shader_java_1.glslattribute vec4 a_Position;attribute vec2 a_TextureCoordinates;varying vec2 v_TextureCoordinates;void ma...

2019-03-16 11:53:44 9307 2

原创 音视频之opengl绘制三角形

2018年用了一年业余时间学习了音视频,直播,解码,编码,倍速,跳转,滤镜,倒放等。,慢慢把这部分内容写到博客上,一步步来。Android中使用的是android opengl es 2.0,可以使用它建立三维或者二维的图形。在音视频的方向目前好像还没看到使用三维来干嘛,主要还是为了分担cpu的压力,因为编解码对cpu的压力已经很大了,再把渲染给cpu就有点忙不过来了。Opengles在ja...

2019-03-14 22:38:22 8160 2

原创 java虚拟机之Java内存模型与线程

Java内存模型与线程Java内存模型主内存与工作内存Java内存模型主要目标:定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variable)与Java编程中的变量略有区别,它包括实例变量/静态字段和构成数组对象的元素,不包括局部变量和方法参数(线程私有)。为获得较好的执行效能,Java内存模型并没有限制执行引擎使用处理器的特定寄存...

2019-03-12 21:40:09 333

原创 java虚拟机之虚拟机类加载机制

虚拟机类加载机制类加载时机加载,验证,准备,初始化,卸载这个五个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始,而解析阶段不一样:它在某些情况下可以在初始化阶段之后再开始类加载过程加载:加载(Loading)阶段是“类加载”(Class Loading)过程的第一个阶段,在此阶段,虚拟机需要完成以下三件事情:1、通过一个类的全限定名来获取定义此类的二进制字节流。2、...

2019-03-12 21:37:34 282

原创 java虚拟机之垃圾收集器篇

感觉好像作为一个android开发者java的垃圾收集器好像我没多大必要了解呢,毕竟android的收集器我们也配置不了,看着篇幅没多少我还是学习了,在这里做个记录。这个是上面算法的具体实现 java虚拟机之垃圾回收篇Serial收集器Serial收集器是最基本、发展历史最悠久的收集器。是单线程的收集器。它在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集完成。Serial收集器依...

2019-03-11 23:05:49 410

原创 java虚拟机之垃圾回收篇

垃圾收集与内存分配策略对象存亡1.引用计数法给对象添加一个引用计数器,每当有一个地方引用他,计数器就+1,引用失效计数器就-1,任何时刻计数器为0,就是不再使用的对象。这个方法在很多地方也确实在使用,但是 有个很难解决的问题就是对象之间的相互循环引用,比如a持有b的引用,b也持有a的引用,各自的计数器都是1所以无法回收。2.可达性分析算法这个算法就是通过一系列称为“gc root”的对象...

2019-03-11 22:54:12 308

原创 java虚拟机之内存模型篇

最近在准备跳槽中,整理了下自己的一些知识点,把文档也copy在博客上,不过图片很多是网络上下载的。先写java虚拟机篇1.Java 内存区域与内存溢出异常程序计数器是一块较小的内存空间,用来指定当前线程执行字节码的行数,每个线程计数器都是私有的,因为每个线程都需要记录执行的行数;这里解释一下为什么每个线程都需要一个线程计数器,JVM的多线程是通过线程轮流切换分配执行时间来实现的,在任何时...

2019-03-11 22:29:41 8717

原创 Unable to connect to your virtual device! Check your VirtualBox network configuration.

我觉得这是个不错的android虚拟机,但是出现下面问题下面是解决办法:点击管理然后点击全局设定然后最后再删除这个adapter,然后再重启Genymotion 就可以了。

2017-06-04 14:48:55 715

原创 ViewGroup触摸事件的分发,拦截,消耗(dispatchTouchEvent , onInterceptTouchEvent , onTouchEvent)

在家写个代码需要抵制的诱惑实在太大,看微博上的兄弟们都在咖啡馆写东西,看来是有原因的,不然等会就叫你来打游戏。这种人T_t写了个小demo来演示这三个方法。注:big代表最外层的红色部分,middle是中间蓝色部分,small则是最里面的部分。现在分别记录下三个事件的意思。dispatchTouchEvent:负责分发事件如果直接返回true,或者false,那么将不会再去调用onIntercept

2017-04-09 15:04:58 742

原创 signal 11 RenderThread 一个蛋疼的崩溃

当app运行着,莫名奇妙的就异常退出,在测试那边使用频率较高,一天大概能出现两次,这个搞的我真心蛋疼。加郁闷。网上google了很多一般出现的都是,下图这样。大概看出来是gpu,一个底层的bug,在不停的界面切换,或者fragment切换的时候,概率出现的比较高。也有在啥都没做,就放在那里也会出现,只是相对概率较低一点。gpu就是个硬件加速,应用程序默认是打开的,所以我关闭了(android:har

2016-12-24 12:26:26 9849

原创 万用RecyclerView.Adapter,不写重复的代码

已经年底了。坐等过年了。今年比较忙了。所以写代码都在想尽量不写重复的代码,连copy都要尽量避免, 因为copy也要维护,维护起来也是很蛋疼的事情。所有要避免重复写同样的代码。效果图:现在写一个关于RecyclerView的adapter的父类。adapter中主要就是两个东西在变化,一个就是实体类,一个就是item的布局在变化,然后其他的变化几乎都没了。都是相同的。当然这两个直接就使用泛型就可以

2016-12-17 09:35:10 1939

原创 一个酷酷的log

忙了大半年,继续写写博客。这个是我在github上找到的一个log库,不知道是哪位大神,然后自己改动了下下。原github地址是logger然后自己封装成了一个logger.jar可以直接放进去。不用再关联工程,个人感觉要方便了许多。地址:logger.jar下面就看看使用方法:public class MyAppilication extends Application{ @Overrid

2016-10-11 20:40:31 414

原创 ViewPager+Indicator(如何写indicator)

一:概述这个教程好像网上挺多的。viewpager用fragment作为每一个item,但是似乎好像indicator似乎都有点不太满意,下面的滑动条是直接跳动的,不是类似动画滑动的。现在就说说这个滑动条。然后再说说其他的东西(比如activity传数据给fragment啊。这些)。先看看效果图: 二:源码解读我们先讲讲viewpager吧。private MyPageAdapter adapte

2016-02-14 16:46:09 733

原创 Android IPC 之AIDL

这几天深圳阴雨绵绵,让一个宅男连出去的欲望都没了。一:概述上一篇写了下Messenger的如何使用,这篇写一下AIDL 如何使用,Messenger是一对多的串行使用,而AIDL是可以一对多的并发。看看效果图吧:以打印log的方式出来的: 二:看看代码在aidl中仅支持以下数据类型:1.基本数据类型(int,long,char,boolean,byte等)2.String 和 CharSeque

2016-01-17 12:00:59 489

原创 Android IPC 之Messenger

出去旅游的计划因为过年买不到火车票就泡汤了,只有过来写博客玩了。一:概述ipc 就是进程间通信啊。Android上进程间通信的方式有很多啊以下就有:1.bundle 只能传输bundle支持的数据 2.文件共享 不适合高并发,3.aidl 支持一对多的并发通信(下篇博客写这个),需要处理线程同步问题。4.Messenger 一对多的串行通信,并且是以message为载体传输5.content

2016-01-15 18:11:38 713

原创 android 自定义控件之圆形菜单

今天在公司写这个东东,而且今天是在公司最后一天。还有点小小的伤感。一:概述做了个圆形菜单,圆形菜单:将控件按下面的方式排列。如果有四个子控件,那么两个控件之间就是90度,如果有5个子控件,那么两个控件和圆心之间的夹角是72度。自定义Viewgroup重写onMeasure,和onLayout两个方法,因为有需要我也把ondraw重写了。效果: 二:源码解析首先我们看看onMeasure方法 @Ov

2016-01-04 12:26:52 1764 1

原创 自定义控件之流式布局

这段时间偷懒了,全去dota去了。都没有心情敲代码了。写了个流式布局。练习下自定义viewgroup,再准备写个圆形菜单来练习练习。下面看看效果:流式布局: 一 概述:流式布局就将其子控件,从左往右进行排列。如果这一行能放下当前的控件(需要考虑margin,和控件的宽度)那么久在当前放下控件,如果放不下控件,就放到第二行去。viewgroup中我们必须实现onMeasure(

2016-01-03 22:46:42 1612

原创 android 动画总结(利用属性动画做一个波浪)

一:概述这篇博客就将动画做一个总结。平时用用view动画基本能解决挺多问题。帧动画就时像播放电影一样一帧一帧的播放。属性动画就无敌了。直接更改某个属性来达到动画,其实他能更改的不只是view,任意对象都能更改,只要对应的属性有get,set方法。1.view动画:view动画就只有四种变化方式,平移,缩放,透明度,旋转。我们先看看从xml文件中写 平移 动画view动画的xml文件必须写在res/a

2015-12-10 10:04:24 1085 1

原创 Android数字游戏之数独(自动随机生成不同难度的数独)

加个好友共同学习(不是公众号):因为小弟水平有限,如果有写的有问题,希望指出。

2015-12-04 21:50:39 4502 2

原创 android 普通蓝牙源码解读

上一篇博客讲了下蓝牙4.0在android中的应用,这里讲讲普通蓝牙之间如何操作。我记得在大二的时候还做了个比较烂的游戏,当时喜欢打dota就做了个蓝牙之间对战坦克的游戏,可以去看看,确实挺烂,到现在我都没想明白两个设备之间如何保持数据实时同步的(蓝牙传输是有延迟的),我去下载了其他的蓝牙对战的游戏,别人做的很好。所以就更加郁闷了。(希望大神不吝赐教 )蓝牙对战游戏加个好友共同学习(不

2015-11-23 21:08:30 721

原创 WIFI P2P (WIFI直连)源码解析

一:概述直接看看效果视频连接wifi直连是可以不用在WiFi环境下利用wifi传输数据的方式(当然在wifi环境下也可以)。 下面是wifi联盟的解释:并且这个wifi直连,并不是只是像蓝牙两台设备互联,可以3台及以上(没有测试过上限是多少台)。但是有个局限,就是必须其中一台设备担任groupowner角色。其他的设备担任peer角色。 1.groupowner角色就像时一台服务器。其他是设备需要

2015-11-20 23:40:06 11297 2

原创 android 蓝牙4.0 ble 低功耗蓝牙

一:概述这段时间做了蓝牙4.0的项目,就是一个蓝牙设备控制手机进行拍照。并且有很多按键,不同的按键对应到手机上有不同的功能,并且组合起来也有不同的功能。 低功耗蓝牙有中央设备后周边设备的概念手机就是一个中央设备,像我这次试用的一个控制器, 我试过小米体重秤。来测试玩。 a.GATT 这是蓝牙技术联盟定义的一个协议。 b.Service 这个是许多或者一个特征值的集合。 c.Characteri

2015-11-18 16:46:27 3413 1

原创 对scrollview嵌套listview说不(二)NestedScrollingParent +RecyleView

一:概述前一篇博客说了listview中的adapter中装多个adapter的方式解决scrollview嵌套listview的方式,这篇就说nestscrolling+recycleview的方式解决问题。 效果图:二:预备知识首先我们先了解下NestedScrollingChild 和 NestedScrollingParent 子布局中需要实现NestedScrollingChild接口

2015-11-17 23:02:11 6862 6

原创 对scrollview嵌套listview说不(一)

转载请指明出处:http://blog.csdn.net/u010339039/article/details/49838665 今年刚毕业然后就和同学来到了深圳。平时工作也不是很累,偶尔还挺闲。就像找点什么事来做。又没有其他什么技能,就想到来自己写写技术博客,小弟才疏学浅,如果写的如果有问题,希望大家指出。一.概述以前写类似这样的界面的时候总是先想到的是使用scrollview嵌套一个list

2015-11-14 20:42:27 2991

音频倍速播放之sonic

音频倍速播放,不变音,不变调,sonic,调用简单不复杂,可以看我的github上也有免费的https://github.com/xhc2/MyFFmpeg

2019-04-10

flv文件解析实战

flv文件解析实战,并且放入了文件解析工具,和解析文档

2019-04-04

java虚拟机整理文档(面试使用)

这是在准备面试的时候,把java虚拟机的相关知识整理的文档。

2019-03-12

setup-Red5-1.0.8-M11.exe

red5 服务器安装包,安装是记得ip 127.0.0.1,等会继续上传相关的doc文件等等

2017-10-26

空空如也

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

TA关注的人

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