排序:
默认
按更新时间
按访问量

Android视频编辑器(五)音频编解码、从视频中分离音频、音频混音、音频音量调节等

前言      这篇博客,主要讲解的是android端的音频处理,在开发Android视频编辑器的时候,有一个非常重要的点就是音频的相关处理。比如如何从视频中分离音频(保存为mp3文件),然后分离出来的音频如何单声道和双声道互转,还有就是如果把两个音频文件合并为一个音频文件(音频混音),以及如何调...

2017-11-20 21:17:32

阅读数:1261

评论数:6

Android视频编辑器(四)通过OpenGL给视频增加不同滤镜效果

前言        在上面的几篇文章中,我们实现了录制视频、通过opengl在录制过程中和给本地视频添加水印和美颜效果,还没看过的童鞋,可以看该系列的前面三篇文章。而这篇博客,我们来实现给视频添加各种各样的滤镜。现如今给视频加各种不同的滤镜对各视频类app来说,已经是标配功能。而添加各类滤镜可以使...

2017-10-30 19:38:10

阅读数:2080

评论数:5

Android视频编辑器(三)给本地视频加水印和美颜滤镜

前言          在上两篇文章中,我们分别实现了通过OpenGL预览、录制视频,以及在预览和录制的时候加上视频水印和美白效果,而作为一个视频编辑器,当然不仅仅是录制视频,也会有从本地选择视频,然后加上视频水印、美白、滤镜等效果,再进行发布的需求。所以作为系列文章的第三篇,我们就来实现如何给本...

2017-10-18 16:56:59

阅读数:4115

评论数:9

Android视频编辑器(二)预览、录制视频加上水印和美白磨皮效果

前言 这是视频编辑器系列的第二篇文章,在上篇文章中,我们讲解了利用OpenGl和SurfaceView进行视频预览,MediaCodec和MeidaMuxer进行视频录制和断点续录。而这篇主要会讲解一下如何在预览和录制视频的时候,利用OpenGL加上水印和美白磨皮的效果。如今的各种拍照、录制视频类...

2017-10-12 14:40:54

阅读数:2503

评论数:5

Android视频编辑器(一)通过OpenGL预览、录制视频以及断点续录等

前言 如今的视频类app可谓是如日中天,火的不行。比如美拍、快手、VUE、火山小视频、抖音小视频等等。而这类视频的最基础和核心的功能就是视频录制和视频编辑功能。包括了手机视频录制、美白、加滤镜、加水印、给本地视频美白、加水印、加滤镜、视频裁剪、视频拼接和加bgm等等一系列音视频的核心操作。而本系列...

2017-08-19 09:31:16

阅读数:2928

评论数:15

算法(八)最短路径之Bellman-Ford算法的队列优化以及几种最短路径算法对比

前言从上篇博客的,Bellman-Ford算法介绍的最后一部分,我们指出,其实,可以对该算法进行进一步的优化。原因是因为:其实在每一轮松弛操作结束后,就会有一些顶点已经求得其最短路径。此后这些顶点的最短路径的估计值就会一直保持不变,但是每一次都还要对其进行判断。这里浪费了时间,这就启发了我们每次仅...

2017-07-31 20:12:54

阅读数:199

评论数:1

算法(七)最短路径之Bellman-Ford算法

前言            前面两篇文章,我们分别学习了Floyed-Warshall和Dijkstra算法。还有印象吗?这篇文章我们就来学习一下另一种最短路径的算法,Bellman-Ford算法和一些邻接表的知识。在上篇文章中学习的Dijkstra算法的时间复杂度是O(N*N),那有没有什么可以...

2017-07-16 17:18:15

阅读数:155

评论数:0

android使用CMake进行jni编写遇到的一些问题

前言          android studio 2.2之后出的CMake 让jni的编写方便了很多,使用CMake让我们不在烦恼函数的定义,以前我们需要通过javah命令生成,jni规定的函数名,现在不需要了。他也让我们可以很方便的编写c/c++代码,自动打成so。总体来说,让我们的jni编...

2017-05-27 13:59:19

阅读数:1637

评论数:1

算法(六)最短路径之Dijkstra算法

前言在上一篇博客中,我们学习了最短路径系列的第一种算法Floyd-Warshall算法来求解图中点与点之间的最短路径的问题。这篇博客我们就要来学习一下,求解单源最短路径的一种算法:Dijkstra算法。具体问题还是几个城市间的最短路径问题,这次我们需要求的是1号顶点到其余个点的最短路径。路径图如下...

2017-05-16 19:19:04

阅读数:199

评论数:0

算法(五)最短路径之Floyed-Warshall算法

前言算法中的最短路径问题,是一个经典的算法问题。旨在寻找图(由顶点和边组成)中顶点到顶点间的最短路径。而我们接下来的几篇文章就会一起学习最短路径问题中常用的Floyed-Warshall、Dijkstra、Bellman-Ford以及Bellman-Ford的队列优化这四种算法。这些最短路径的算法...

2017-05-16 14:53:06

阅读数:295

评论数:0

算法(四)搜索算法(二)(广度优先搜索)

前言在上一篇博客中,我们学习了搜索算法的第一种:深度优先搜索,这篇博客就让我们一起来学习另一种大家都经常听见的搜索算法:广度优先搜索。看名字就知道,他们两者之间肯定有什么不可告人的秘密。广度优先搜索,又叫宽度优先搜索,英文名:Breadth First Search。属于一种盲目搜寻方法,目的是系...

2017-05-03 17:13:57

阅读数:182

评论数:0

算法(三)搜索算法(一)(深度优先搜索)之地图迷宫

前言前面两篇文章,只是讲了一下算法的入门,排序算法和枚举算法,大家是不是觉得很简单呢?那么这篇文章,我们就有学习一下,稍微有点难度的,也是面试、笔试经常见到的深度优先搜索。而常见的搜索算法就有,上篇文章中所介绍的穷举算法、以及本篇将要介绍的深度优先搜索,以及暂时不会介绍的A*算法、回溯算法、混沌搜...

2017-04-24 17:57:33

阅读数:279

评论数:0

算法(二)枚举算法(穷举法)之火柴棍等式

前言这是本系列的第二篇文章,从名字就可以看出,将要学习穷举算法,也叫枚举法,噫,有同学可能就要问了,穷举也算算法吗?当然算啦,别拿豆包不当干粮,拿乞丐不当江湖中人,事实上,江湖上很多鼎鼎有名的高手,就来自于天下第一大帮,丐帮。所以,枚举其实也是一种算法思想。现在我们就来学习神功的第二层,枚举算法实...

2017-04-23 15:04:07

阅读数:301

评论数:0

算法(一)排序算法(桶排序、冒泡排序、快速排序)

前言这些一个系列的文章,主要是自己学习算法和数据结构的一些笔记整理。从最简单开始,一步步深入,都是自己学习过程中的领悟。对于程序猿而言,算法和数据结构就像一门强大的内功,练的过程中,会比较难,相对于武学招式,需要更多的理解能力和悟性,但是一旦练成,那就能变身强大的武林高手,纵横武林,不再是梦想。本...

2017-04-07 18:43:32

阅读数:572

评论数:1

SurfaceView的nativeUnlockCanvasAndPost 导致的没有任何错误信息的IllegalArgumentException

最近项目里面使用到了surfaceView,在子线程中进行页面绘制,但是出现了一个莫名其妙的bug,该Exception,没有什么信息,无从判断是什么原因导致的 "> 所以,需要我们去看看为什么会导致这样的问题,我们的代码是如下 if (mSurfaceHolder ...

2017-03-17 11:32:45

阅读数:1168

评论数:0

由FragmentTabHost导致的Can not perform this action after onSaveInstanceState异常

这是开发中,用户反馈很多的一个exception。主要是Fragment的commit和commitAllowingStateLoss的问题,出现这种问题的原因很多,本次主要因为FragmentTabHost导致的该bug的发生 "> 完全没有,我们应用的我们熟悉的那些类的堆栈...

2017-03-16 19:22:01

阅读数:1504

评论数:4

okhttp、okio添加参数(addParams)出现的java.lang.IllegalArgumentException:Unexpected code point

这是我们项目,收集到的,用户出现过不少次的一个问题。根据堆栈发现是出现在用户修改自己的个人资料时出现的。 项目的网络框架用的是okhttp,在bugly上的样子如下图 "> 查看堆栈信息,找到抛出这个异常的地方,在okhttp的okio这个jar包的Buffer类中,的w...

2017-02-24 15:26:17

阅读数:2565

评论数:2

Android的自定义View深入解析

前言 自定义View是每个Android开发人员,都必备的技能。当SDK提供的常规控件如TextView、Button等没法满足我们日常开发需求时候,就需要我们进行View的自定义。本文就从View的绘制过程、自定义View的分类、自定义View的自定义属性、Canvas的简单使用、View的事件...

2017-02-23 19:06:21

阅读数:327

评论数:0

Android的Handler部分原理的解析

前言 Handler是Android应用开发中最常用的线程间通信类,在Android应用开发甚至整个应用的运行中都有非常重要的重要。所以理解Handler的实现原理,是很有必要的一件事情。本文,会从Handler、Looper、MessageQueue等关键类的源码,分析Handler的主要原理。...

2017-01-18 15:30:59

阅读数:137

评论数:0

Android的动画理解与深入

在android开发中,动画能让我们做出各种各样酷炫的效果,然而,你真的懂动画吗?为什么有三种动画的分类?他们的实现原理是怎么样的?我们怎么样才能做出绚丽的动画效果?动画使用中有什么值得注意的地方?本文,就将进行以上问题的一些探讨。 一、Android的动画的分类 我们都知道Android...

2016-12-25 10:25:23

阅读数:193

评论数:0

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