Android JNI操作Bitmap实现黑白图片

最近想练习一下NDK,基于我接下来的目标是多媒体,多以想多点学习一下关于滤镜的知识,黑白滤镜是最简单的了。 这里实现的是将一张彩色图片转成黑白图片,是黑白滤镜的基础! 直接上码: // java 代码 public void gray(View view) { Bitmap source ...

2018-12-05 11:46:57

阅读数 168

评论数 0

Android FFmpeg系列——7 实现快进/快退功能

实现快进、快退功能,其实就是设置视频的播放进度! 基本思路如下: 暂停 生产(读取帧)和 消费(解码播放); 清空队列,包括视频队列和音频队列; 调用 av_seek_frame 设置进度; 唤醒,继续 生产(读取帧)和 消费(解码播放); 思路很简单,我们一步一步实现! 暂...

2018-10-31 16:35:24

阅读数 256

评论数 0

Android FFmpeg系列——6 Java 获取播放进度

一般播放器都能显示播放进度,这一节来实现这个功能。由于我是在 C 层播放视频的,至于播放到哪里,Java 层是不知道的,所以得利用 C 调用 Java 代码来实现。 Java 代码 /** * 同步播放音视频 * @param path * @param surface * @...

2018-10-31 14:26:08

阅读数 244

评论数 0

Android FFmpeg系列——4 子线程播放音视频

利用工作闲余时间,终于实现在子线程播放音视频! 上一接学习了在 C 使用多线程,接着就是利用 C 多线程同时播放音视频(暂时还不同步)。 不多说,直接上码。 代码 // C 层播放器结构体 typedef struct _Player { // Env JavaVM ...

2018-10-26 16:48:42

阅读数 521

评论数 0

Android FFmpeg系列——5 音视频同步播放

音视频同步播放是做播放器的难点之一,在博主用到的播放器中,有一款播放器我真的无法忍受,那就是百度云播放器!这里我真的得吐槽一下,卡顿之后,然后视频可以正常播放,但是没有声音,声音竟然没了!!你这么一个大厂,连这点都搞不定?!而且我还提过2次建议(因为实在忍不了,但是又必须得用),也不是出现的概率很...

2018-10-19 10:15:45

阅读数 193

评论数 0

Android FFmpeg系列——3 C多线程使用

在 Android FFmpeg系列——2 播放音频 中,在主线程播放音频会导致ANR,虽然我们可以在 Java 层启动一个线程来播放,由于接下来我们要实现完整播放视频,需要在 C 层达到控制效果,所以我们还是在 C 层启动新线程来播放音频。 这一节,我们来学习 C 层多线程的使用。 pthr...

2018-10-18 17:39:25

阅读数 164

评论数 0

Android FFmpeg系列——2 播放音频

音频简介 虽然听了很多音频,但其实对音频知之甚少,所以很有必要了解一下音频。 Audio,指人耳可以听到的声音频率在20Hz~20kHz之间的声波,称为音频。 音频录制 播放音频之前,我们得先了解音频是怎么保存的。保存音频,其实也就是录音和制作。 模拟时代 模拟时代是把原始信号以物理方...

2018-10-17 11:34:12

阅读数 180

评论数 0

Android FFmpeg系列——1 播放视频

由于公司项目原因,现在才得空来学习关于FFmpeg库的使用。 前言 在使用FFmpeg库的过程中,哎呦,各种心酸!!项目重新创建了N次,调试了N次,终于把视频流播放出来,心里甚是激动呀! 环境搭建 Android Studio 创建Demo项目,记得把 “Include c++ suppo...

2018-10-16 17:54:42

阅读数 944

评论数 1

Android FFmpeg 编译.so库

编译了好几天,算是把它搞出来了!! 环境准备 博主尝试在win7使用Cygwin编译,按照网上的说法,结果出现各种莫名其妙的错,比如 “找不到\r命令” 之类,大家可以尝试一下,反正我是怕了,所以博主决定在linux下编译。 编译环境:Linux(博主是在VM...

2018-08-10 16:36:28

阅读数 405

评论数 0

Android Xfermode

最近需要做类似于QQ裁剪头像的功能: 以前的我,肯定会糊里糊涂的copy网上的资料完事!!这样完全学不到东西,所以这次认真点,学习里面的“精髓”,虽然不难! 好了,这里会接触到Canvas的Xfermode与Layer的东西,在自定义View中可以实现很复杂的效果。 Xfermode...

2018-04-12 10:43:08

阅读数 116

评论数 0

Android OpenCV库使用

最近在做一个文字识别的工具,主要是想从图片中提取出对我有用的信息。 文字识别用的是Tesseract的文字识别库,写了一个demo,发现识别的速度很慢,于是想是不是要对原图做些处理呢?! 于是乎,找到了这个博文:Android中的文字识别(论文精简版),里面提到需要对原图片做基本的处理: ...

2018-04-11 16:51:40

阅读数 458

评论数 0

Android 微信支付

公司最近需要接微信支付,由于微信支付相关文档不全,在集成过程中,遇到了很多坑,这里记录一下,希望能帮到需要帮助的人。 好了,开始吧!! 1.申请微信开发者账号 微信开放平台网址:https://open.weixin.qq.com/ 开发者对申请开发者账号已经不能再熟悉了吧,而且这步没什么...

2018-04-11 10:09:05

阅读数 169

评论数 0

Android6.0 权限管理

Android6.0之后,为了用户的安全,对于一些敏感的权限,不仅要在AndroidManifest文件声明这些权限,而且还要在代码中动态申请这些权限。 敏感权限: CALENDAR(日历) READ_CALENDAR WRITE_CALENDAR CAMERA(相机) CA...

2018-04-03 15:11:01

阅读数 103

评论数 0

Java方法变量中的final

今天由于对方法变量中的final有点困惑,在网上查了一下,才发现在方法变量中,final是这么一回事,这里做一下记录! 什么时候方法参数才需要加final关键字? 匿名/局部内部类访问外部方法参数时,外部参数需要加上final关键字。 用代码来解析: public void start...

2018-03-27 10:13:56

阅读数 555

评论数 0

自定义Android视频播放器 - 切换横竖屏

前一篇自定义了SurfaceView,然后尝试横屏显示,虽然视频适配方面没有问题,但是没有占满整个屏幕。 我分析了一下一般的视频播放器,发现: 竖屏播放视频,播放器的宽度占满手机屏幕的宽度,播放器的高度根据视频大小决定,有可能超过屏幕的高度。 横屏播放视频,播放器的高度占满手机屏幕的宽度,播...

2018-03-22 13:49:44

阅读数 1061

评论数 1

自定义Android视频播放器 - 自定义SurfaceView

Android开发视频播放器,一般都是使用MediaPlayer+SurfaceView来实现,VideoView也是使用了MediaPlayer+SurfaceView方式(不信看源码)。所以,我打算使用MediaPlayer+SurfaceView封装自己的视频播放库。 本章打算用之前的例子...

2018-03-21 10:59:06

阅读数 1320

评论数 3

视频播放器开发 - VideoView

刚开始,还以为VideoView是Android提供我们另一种播放媒体的控件,看了源码之后,原来是MediaPlayer+SurfaceView的封装,只是方便我们使用而已,当然也有好处。既然是封装,那我们来看看VideoView是怎么使用MediaPlayer+SurfaceView的。 源码...

2018-03-20 16:08:03

阅读数 269

评论数 0

视频播放器开发 - MediaPlayer

简介 MediaPlayer是Android提供媒体文件的组件,播放视频时一般配合SurfaceView使用。 状态机 我们使用MediaPlayer前,先了解一下MediaPlayer的状态机,如图: 播放流程 我们从状态机图可以看出,使用MediaPlayer播放视频流程...

2018-03-20 10:09:19

阅读数 229

评论数 0

Java设计模式 - 开篇

简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 分类 这些模式可以分为三大类:创建型模式(C...

2018-03-19 20:50:23

阅读数 71

评论数 0

视频播放器开发 - 基本原理

在做视频播放器之前,我们先了解一些基本定义。 基本定义 视频 连续的图像变化每秒超过24帧画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。 帧率 指的是视频格式每秒钟播放的静态画面数量。典型的画面更新率由早期的每秒6或8张...

2018-03-18 10:23:43

阅读数 3372

评论数 0

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