Android消息传递机制总结

由于直播项目的推流SDK,拉流SDK已经稳定。所以这段时间一直开发业务层新需求。业务层的核心灵魂就是层层的消息传递,今天就来总结一下andorid的应用层的各种消息传递。1.线程间通讯 ——— Handler,HandlerThread等。 2.组件间通信 ——— BroadcastReceiver,接口回调等。 3. 第三方通信 ——— EventBus,rxBus 4.进程间通...
阅读(24) 评论(0)

openGL ES进阶教程(六)美颜滤镜之美白,磨皮,红润

网上搜罗了一堆的美颜滤镜效果,可惜尽不如人意。最后偶然看到ios上提供了一个用OC写的美颜滤镜,好吧,改写成Java的试试。好在大学时期搞过一段时间IOS开发,用自己的半吊子的水平,没想到还真改成功了。先上效果图:网上搜涨痘痘的图片,搜到刘涛了,罪过罪过~原图:美颜后:可见有四个可滑动的bar,从上到下分别是,磨皮度,磨皮值,美白,红润。美颜原理磨皮:本质就是让像素点模糊,可以使用高斯模糊,但是可能...
阅读(1100) 评论(1)

[置顶] openGL ES进阶教程(五)制作一个简单的VR播放器,播放全景视频

之前写过全景(VR)图片,和用openGL ES+MediaPlayer 渲染播放视频+滤镜效果这一篇就在之前的基础上实现一个最简单的VR播放器,播放全景视频。概述:全景视频是一种用3D摄像机进行全方位360度进行拍摄的视频,用户在观看视频的时候,可以随意调节视频上下左右进行观看。展示:“身临其境的枪战” 可见晃动手机,视图也跟着转! 原理:1.用OpenGL绘制一个球。 2.MediaPl...
阅读(1065) 评论(2)

openGL ES进阶教程(四)用openGL ES+MediaPlayer 渲染播放视频+滤镜效果

之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频 ,今天再给大家来一篇openGL ES+MediaPlayer来播放视频。。。。当年也曾呆过camera开发组近一年时间,可惜那时候没写博客的意识,没能给自己给大家留下多少干货分享。。。上个效果图吧:用openGL着色器实现黑白(灰度图)效果...
阅读(1839) 评论(3)

openGL ES进阶教程(三)用openGL实现动态壁纸,就是这么简单

网上动态壁纸的实现教程有很多,但是用openGL实现动态壁纸的教程却是寥寥无几,那么今天就带领大家学习用openGL实现动态壁纸,起一个抛砖引玉吧。在之前曾写过一篇 ffmpeg/camera实现最近很火的视频壁纸,相机壁纸 ,动态壁纸的实现套路已经写了,今天就不追述了。老规矩,先看效果图让大家有个概念:大家也看出来了,没错,是基于上篇openGL ES进阶教程(二)之全景图片 实现的。下面就具体说...
阅读(1074) 评论(0)

ffmpeg实战教程(十二)为视频添加/更换背景音乐

2017年,各种关于视频处理的功能层出不穷,现在基本上大多APP都有视频上传播放功能。 然而上传,播放可用的优秀框架有很多,我们在此就不说了。 本篇我们就做一个用ffmpeg给视频添加/更换背景音乐的功能UI界面有两个输入框,第一个填入要加背景音乐的视频文件,第一个要添加音乐的文件。 然后点击按钮。 可见在手机根目录生成了一个合成的视频文件。试播一下,发现已经有了背景音乐。 其实现原理主要是...
阅读(2503) 评论(5)

[置顶] ffmpeg实战教程(十一)手把手教你实现直播功能,不依赖第三方SDK

直播,2016最火的技术之一了,更多的关于直播的知识:http://blog.csdn.net/king1425/article/details/72489272 …这篇我们就不依赖任何集成好的SDK,自己搭建服务器,用ffmpeg+nginx实现手机直播功能先上图:推流的手机拉流的网页和VL播放器拉流的手机客户端对于nginx服务器的搭建之前有写过:ffmpeg实战教程(九)windows下ff...
阅读(2473) 评论(4)

openGL ES进阶教程(二)之全景图片

全景又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体最大的区别是“可操作,可交互”。 全景分为虚拟现实和3D实景两种。虚拟现实是利用maya等软件,制作出来的模拟现实的场景,代表有虚拟紫禁城等;3D实景是利用单反相机或街景车拍摄实景照片,经过特殊的拼合,处理,让作者立于画境中,让最美的一面展现出来。全景顾名思义就是给人以三维立体感觉的实景360度全方位图像~ 此图像最大...
阅读(1126) 评论(1)

openGL ES进阶教程(一)之粒子光束

2016AR/VR喊的火热,这些在Android上的实现或多或少与openGL 有关。 OpenGL能做的事情太多了!很多程序也看起来异常复杂。更有可能因为某一步的顺序错误导致最后渲染出错,这是因为,OpenGL和我们现在使用的C++、java这种面向对象的语言不同,OpenGL中的大多数函数使用了一种基于状态的方法。你可以看到Android中的播放器原理,就是API改变播放状态,逻辑性非常强~ 本...
阅读(1135) 评论(1)

[置顶] ffmpeg实战教程(十)ffmpeg/camera实现最近很火的视频壁纸,相机壁纸

本篇实现一个有意思的玩意儿,视频壁纸,相机壁纸 这玩意好像现在还都是国外版本,哈哈先上图: 视频壁纸 相机壁纸 1.动态壁纸制作的知识:每一个动态壁纸都继承自WallpaperService,其中必须实现的抽象方法onCreateEngine,返回一个Engine对象,实际上所有的绘图与刷新都是由engine完成。如下public class VideoLiveWallpaper exten...
阅读(2878) 评论(0)

ffmpeg实战教程(八)Android平台下AVfilter 实现水印,滤镜等特效功能

上一篇我们实现了Android平台解码avi并用SurfaceView播放。 ffmpeg实战教程(七)Android CMake avi解码后SurfaceView显示 本篇我们在此基础上实现滤镜,水印等功能。对ffmpeg不熟的客官看这里:ffmpeg源码简析(一)结构总览 先上两张效果图: 黑白:const char *filters_descr = “lutyuv=’u=128:v=12...
阅读(1692) 评论(4)

ffmpeg实战教程(七)Android CMake avi解码后SurfaceView显示

在上一篇文章中实现了Android平台MP4解码YUV数据, 本篇我们实现Android平台解码avi并用SurfaceView播放。先上图看效果:思路: 1.把封装好的视频数据解码为YUV 2.YUV数据转化为RGB。 3.一帧一帧的传给SurfaceView显示出来PS: 其实YUV数据可直接在SurfaceView显示,在研究Android系统多媒体框架的stagefright视频显...
阅读(1768) 评论(4)

JNI高阶知识总结

JNI与NDK的关系NDK可以为我们生成了C/C++的动态链接库,JNI是java和C/C++沟通的接口,两者与android没有半毛钱关系,只因为安卓是java程序语言开发,然后通过JNI又能与C/C++沟通,所以我们可以使用NDK+JNI来实现“Java+C”的开发方式。JNIEnv与JavaVMJNIEnv 概念 : 是一个线程相关的结构体, 该结构体代表了 Java 在本线程的运行环境 ;...
阅读(606) 评论(0)

细数Android5.0到Android7.X 多媒体技术新特性

Android 5.0 行为变更媒体播放如果您要实现显示媒体播放状态或传输控件的通知,请考虑使用新的 Notification.MediaStyle 模板,而不是自定义 RemoteViews.RemoteView 对象。无论您选择使用哪个方法,请务必将通知的可见性设为 VISIBILITY_PUBLIC,以便可通过锁定屏幕访问您的控件。请注意,从 Android 5.0 开始,系统不再将 Remo...
阅读(2965) 评论(0)

Android Multimedia实战(五)MediaCodec编码解码实例解析

MediaCodec概述MediaCodec是一个Android原生的编解码器。 简单的来说,MediaCodec可以把摄像头采集的数据流编码为H264格式,这个过程是压缩过程。也可以把H264格式解码在surface类的控件上显示。我们先来看一下Android系统中解码器的命名,软解码器通常是以OMX.google开头的。硬解码器通常是以OMX.[hardware_vendor]开头的,比如TI...
阅读(1398) 评论(0)
47条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:139276次
    • 积分:2760
    • 等级:
    • 排名:第14430名
    • 原创:130篇
    • 转载:2篇
    • 译文:0篇
    • 评论:99条
    联系方式
    博客专栏
    最新评论