自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (14)
  • 收藏
  • 关注

原创 MediaCodec进行H.264、AAC编码后封装成FLV格式

一、初始化FLV封装包FlvPacker private void init(){ mFlvPacker = new FlvPacker(); mFlvPacker.initVideoParams(WIDTH, HEIGHT, FRAME_RATE); mFlvPacker.initAudioParams(44100, AudioFormat.ENCODING_PCM_16BIT,false); mFlvPacker.setPacketLi

2021-08-31 20:15:00 743 1

原创 MediaCodec进行H.264编码(Camera采集YUV数据)

在这里插入代码片```# 系列文章目录<font color=#999AAA >提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"><font color=#999AAA >提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

2021-08-31 20:02:26 1367

原创 MediaCodec进行AAC编码(AudioRecord采集录音)

一、使用AudioRecord采集录音,创建一个采集录音管理类AudioRecorderManager.javapublic class AudioRecorderManager { private static final String TAG = "AudioRecorderManager"; // 音频获取 private final static int SOURCE = MediaRecorder.AudioSource.MIC; // 设置音频采样率,44

2021-08-31 19:38:45 1510 7

原创 FFmpeg Android 实现本地推流直播

1\在AndroidManifest.xml文件中添加权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.RECORD_AUDIO" />&

2021-08-27 09:34:04 476

原创 x264以及fdk-aac 编译

编译 x264x264 是采用 GPL 授权的开源视频编码库,主要用于 H.264/MPEG-4 AVC 的视频编码,仅作为编码器使用。下载地址http://download.videolan.org/pub/videolan/x264/snapshots/ https://www.videolan.org/developers/x264.htmlgit clone https://github.com/mirror/x264.git在 x264 解压目录下创建编译脚本build_x264.

2021-08-26 15:37:43 6737

原创 FFmpeg 4.2 开发 报错总结

报错:错误 1:G:\wang\work\FFmpegAndroid\app\src\main\cpp\include\libavutil\pixfmt.h:29:10: fatal error: ‘libavutil/avconfig.h’ file not found解决办法:由于avconfig.h文件里面是空的,所以我们可以把引入的该头文件去掉错误2:In file included from G:\wangqi\work\FFmpegAndroid\app\src\main\cpp\nati

2021-08-25 15:38:47 1506

原创 FFmpeg 开发(01):FFmpeg 4.2 编译和集成

FFmpeg 有六个常用的功能模块:libavformat:多媒体文件或协议的封装和解封装库;libavcodec:音视频编解码库;libavfilter:音视频、字幕滤镜库;libswscale:图像格式转换库;libswresample:音频重采样库;libavutil:工具库。编译环境:ffmpeg-4.2.2android-ndk-r20b-linux-x86_64NDK下载1、NDK下载需要翻墙才能下载2、解压 NDKunzip android-ndk-r20b-l

2021-08-25 15:21:23 883 2

原创 Android Studio 问题总结

1、AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的。这时候我们就需要配置镜像来解决这个问题解决方案:buildscript { repositories { maven { url 'https://jitpack.io' } maven { url 'https://maven.aliyun.com/repository/public' }

2021-08-23 11:51:15 108

原创 Android 9.0 PhoneWindowManager中监听手势(左边滑动、右边滑动、顶部滑动、底部滑动、点击)

功能实现:在该地方监听手势滑动,可以实现顶部、底部、左边、右边滑动弹出窗口出来,例如我们手机左右滑动退出程序就可以在这里实现。代码路径:android/frameworks/base/servicescore/java/com/android/server/policy/PhoneWindowManager.java修改地方:在PhoneWindowManager.java中init方法中用到手势,这里可以监听手势(左边滑动、右边滑动、顶部滑动、底部滑动、点击)@Override pub

2021-08-18 14:17:07 1370

原创 Android 9.0 修改导航栏和状态栏进入退出动画

实现功能:去掉导航栏和状态栏进入和退出动画代码路径:android/frameworks/base/servicescore/java/com/android/server/policy/PhoneWindowManager.java修改地方:在PhoneWindowManager.java中selectAnimationLw方法中可以设置导航栏和状态栏进入和退出的动画, @Override public int selectAnimationLw(WindowState win, in

2021-08-18 13:51:57 1230 3

原创 Android 9.0 应用显示宽高比maxAspectRatio使用部分应用半屏问题

现象:代码路径:android/frameworks/base/core/java/android/content/pm/PackageParser.javaandroid/frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java日志分析流程:通过dumpsys acticity看看输出的overrideconfiguration中bound的值,从日志分析看,从bounds数组中可以知道该应用距离左

2021-08-18 11:38:25 1304 1

原创 Android 9.0 蓝牙协议总结

一、蓝牙免提协议 HFPHFP(Hands-Free Profile),通俗点翻译就是免提协议,说白了就是蓝牙电话协议,可以让蓝牙设备通过协议定义好的 AT command 控制电话,如接听、挂断、拒接、语音拨号等。每个功能都有特定的 AT command 和 response.。1、HFP 协议在整个蓝牙中的架构图如下:我们通常叫做 AG,HF,举一个最简单的例子,我们平时用的手机中的 HFP 的角色就是 AG,我们平时用的蓝牙耳机中的 HFP 角色就是 HF。二、蓝牙音乐控制协议(AVRCP)

2021-08-17 10:18:24 3270

原创 Android 9.0 蓝牙电话BluetoothHeadsetClient

BluetoothHeadsetClient主要实现HFP协议,主要实现拨打、接听、挂断电话(AG侧、HF侧)、切换声道功能。AG(Audio Gate)音频网关—音频设备输入输出网关 。HF(Hands Free)免提—该设备作为音频网关的远程音频输入/输出机制,并可提供若干遥控功能。在车载蓝牙中,手机侧是AG,车载蓝牙侧是HF,在android源代码中,将AG侧称为HFP/AG,将HF侧称为HFPClient/HF。BluetoothHeadsetClient初始化/** * 连接服务

2021-08-17 09:24:53 4919 6

原创 Android 9.0 蓝牙各种广播监听

蓝牙开关状态变化BluetoothAdapter.ACTION_STATE_CHANGEDif (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); switch (state) { case BluetoothAdap

2021-08-17 09:14:38 3959

原创 Android 9.0 蓝牙通讯录 BluetoothPbapClient

蓝牙通讯录主要包含联系人和通话记录一、BluetoothPbapClient功能介绍1、主要实现电话簿下载2、电话号码簿访问协议(Phonebook Access Profile)二、BluetoothPbapClient的使用public void getProfileProxy() { boolean isPbapService = mAdapter.getProfileProxy(mContext, new ProxyServiceListener(), BluetoothProfil

2021-08-12 17:43:32 4244 8

原创 Android 8.1 PhoneWindowManager中如何实现应用区域动态全屏

实现思路:一般安卓应用分导航栏和状态栏,如果要想应用区域全屏,那么只需要把导航栏的宽度和状态栏的宽度修改为0.那怎么修改为0?其实在Android中,每启动一个窗口就重新绘制一次,重新绘制一次就可以重新设置一下导航栏和状态栏宽度。代码路径:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java1、在PhoneWindowManager.java中,每启动一个窗口的时候就会执行beginL

2021-08-12 14:10:17 765

原创 Android 9.0蓝牙音乐上一首、下一首、暂停和播放

代码路径:packages/apps/Bluetooth/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java1、在AvrcpControllerStateMachine.java中MESSAGE_PROCESS_PLAY_STATUS_CHANGED和MESSAGE_PROCESS_PLAY_POS_CHANGED就是获取到播放状态 case MESSAGE_PROCESS_PLAY_POS_CHAN

2021-08-10 17:07:59 2679

原创 Android 9.0 10蓝牙音乐获取歌手、歌曲等信息

Android 9.0中蓝牙音乐其实实现很简单,蓝牙远程服务处理在Bluetooth中。修改代码路径:android/packages/apps/Bluetooth./jni/com_android_bluetooth_avrcp_controller.cppandroid/packages/apps/Bluetooth/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerService.java1、在com_android_bluet

2021-08-10 14:05:24 2691 2

原创 Android SElinux权限问题解决

1.从android5.x开始,引入严格的selinux权限管理机制,经常会遇到各种avc denied的Log。 # adb shell cat /proc/kmsg | grep avc # adb shell dmesg | grep avc # adb logcat | grep avc解决原则是:缺什么补什么,一步一步补到没有avc denied为止。 2.Log解决: audit(0.0:67): avc: denied { write }for path="/dev/

2021-08-09 13:46:02 336

原创 H264/H265/YUV码流分析工具记录

H264/H265/YUV码流分析工具记录1.CodecVisa(跨平台:H264/H265...)http://www.codecian.com/downloads.html 2.H264BSAnalyzer(H264/H265)https://github.com/latelee/H264BSAnalyzer 3.GitlHEVCAnalyzer(H264)https://github.com/lheric/GitlHEVCAnalyzer 4.Elecard HEVC/AVC An

2021-08-09 13:41:36 2296

livepush.rar

摄像头出来的YUV数据采用MediaCodec进行编码H.264,采用AudioRecord来采集音频PCM数据并使用MediaCodec编码为AAC数据,然后再把H.264数据和AAC数据封装为FLV格式,再利用RTMP进行推流

2021-08-31

NDK ffmpeg fdk-aac x264开发包以及脚本

该NDK开发包中包含如下:ffmpeg-4.2.2、fdk-aac-2.0.0.tar、android-ndk-r20b-windows-x86_64、android-ndk-r20b-linux-x86_64。编译脚本:build_android_ffmpeg_all.sh、build_fdk_aac.sh、build_x264.sh

2021-08-27

FFmpegAndroid.zip

FFmpeg Android 实现本地推流直播

2021-08-27

00000.tcpdump.2021-06-30_10.21.09.cap

利用tcpdump分析RTMP推流网络包:握手、连接、推流

2021-07-02

libyuv32位和64位静态库.rar

libyuv32位和64位静态库,实现对各种yuv数据之间的转换,包括数据转换,裁剪,缩放,旋转 。

2020-06-10

JNI线程使用.rar

Android C++多线程、生产者和消费者模型、JNI的使用,代码中主要写了一些测试例子验证程序,方便后续使用

2020-02-26

FFmpeng编译脚本和so库.rar

FFmpeg移植安卓平台,使用FFmpeg3.3.9和NDK14b编译处理的so库和全平台编译脚本。

2020-02-25

MKdemo.rar

详细说明NDK-AndroidStudio添加Android.mk文件打包动态so库使用,其中详细说明Android.mk和build.gradle文件

2020-02-05

时钟功能代码

自定义时钟、是根据效果图片来自定义的时钟,附见源码

2018-10-11

下载校准文件META工具

由于有时候会格式化系统,那么就会导致4G会掉线,那么就要自己用工具重新下载校准文件进去

2018-06-12

ShareSDK分享封装好工具

Android开发中,我们的项目都会用到第三方分享,这个Demo是我封装好的一个ShareSDK,可以下载下来直接用,用法可以去官网把那些代码复制过去就可以了,不懂就给我留言。

2016-06-28

安卓自带Parcelable序列化

Parcelable序列化实例

2016-06-28

Android颜色取色器

Android开发中,有时候美工给我们的设计图,并不是每个都标有颜色值,那么我们就可以用颜色取色器来看那是什么颜色。

2016-06-20

安卓反编译工具

安卓开发过程中,到了项目上线时,我们会反编译项目有没有混淆成功

2016-06-14

空空如也

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

TA关注的人

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