android jni C++ java 相互调用 android jni C++ java 相互调用最近回顾下android jni相关接口使用,现在总结一下相关接口,希望对初学者有所帮助。1. jni 层数据 与java层的数据结构对应关系 这个表的对应关系一定要对住,否则会出现一些莫名其秒的错误。2. jni层 的 方法对应的 关系基本有两种方式对应,第一种是给予javah 后边跟一些参数,把
windows gdi+ 简单加载自定义字体 .tff库 windows gdi+ 简单加载自定义字体 .tff库下边介绍非常简单的加载字体库.tff非常简单的方式 在网上查很多资料发现做自定义字库加载要用到接口AddFontResource这个接口,我自己测了下这个接口不好使,自己通过看windows官方文档,找到了一个十分简单的加载自定义字体库的方式,亲测可用,如下所示:fontCollection.AddFontFi
windows GDI+ 离屏绘制文字图片 windows GDI+ 离屏绘制文字图片由于之前都是在linux开发界面,转到windows还真不适应,然后开发工具是VS2015,目的就是不需要把图片文字绘制到界面上,而是绘制到一张透明图上,方便我们对图片进行操作。之前也在网上搜索过相关资料,确实挺少的,现在把实现的功能分享给大家,省的大家走弯路。1. 创建 bitmap 以及 graphic句柄 m
ios AudioUnit bluetooth 录音 播放 实现 ios AudioUnit bluetooth 录音 播放 实现因为拍摄短视频的时候有时候手机离主人比较远的时候,这样录音效果就不好了, 为了方便记录声音,则最好的方式就是使用蓝牙耳机,但是ios关于蓝牙耳机的使用特别少,以下是我总结的内容。#import "XYRecorder.h"#import #define INPUT_BUS 1#define OUTPUT_BU
解决android opengl glReadPixels 慢的问题 三 解决android opengl glReadPixels 慢的问题 三使用2个pbo效率提上去了,但是我手机分辨率是720p, 或者1080p,我们手机相机使用一般是480x640,这样通过gpu渲染到1080p,然后再去从gpu里边去读,虽然使用了2个pbo,但是感觉还是浪费系统资源了,那我们怎么能够尽可能使用gpu渲染我最需要的尺寸呢?那么最好的办
解决 android audiorecord 蓝牙耳机 重启导致录音数据异常问题 解决 android audiorecord 蓝牙耳机 重启导致录音数据异常问题蓝牙 两种同步链路(SCO)和异步链路(ACL)。A2DP(Advanced Audio Distribution Profile 高级音频传输模型)是跑在ACL链路上去高品质音频协议。A2DP定义了ACL(Asynchronous Connectionless 异步无连接)信道上传送单声道或立体声等高质量
解决 eclipse移植androidstudio 找不到静态库的问题 解决 eclipse移植androidstudio 找不到静态库的问题因为之前帮朋友从eclipse工程移植androidstudio开发的时候,使用的第三方静态库,例如科大讯飞等等静态库,发现找不到对应的静态库,然后看到androidstudio build.gradle 上 并没有对jni静态库的进行设置,所以需要我们手动配置静态库路径再build.gradle上,以下
解决android opengl glReadPixels 慢的问题 二 解决android opengl glReadPixels 慢的问题 二上篇讲到使用pbo解决glreadpix慢的问题,但是效果不太理想,后来参考链接:OpenGL Pixel Buffer Object (PBO)中介绍的2个PBO组成一个队列进行处理。效果会大大加强1, 如上图所示,要创建2个PBOprivate int loadFramebuffer(i
解决android opengl glReadPixels 慢的问题一 解决android opengl glReadPixels 慢的问题由于android的gpu跟cpu内存是分离的,导致数据拷贝的过程中会非常慢,网上资料相对较少,下面是我解决这个问题的一点心的,使用PBO代码如下1. 初始化纹理方法 public static int loadTexture(final Bitmap img, final int usedTexId, in
android opengl es 控制 贴图旋转 android opengl es 控制 贴图旋转摘要:控制贴图旋转有很多种方式,通过片段着色语言或者顶点着色语言可以达到控制贴图旋转的目的,本文讲述一种更简单的控制方式,通过控制顶多坐标控制贴图旋转。1. 顶点坐标正常情况下顶点坐标如下所示private float[] mVerticesData ={ -1.0f, -1.0f, 0.0f, 1.0f, -
ios AudioUnit 录制播放 pcm ios AudioUnit 录制播放 pcm总结:AudioUnit 是个很容易控制的音频模块,但同时需要注意的地方也很多,下边是我边录音边放音的功能,希望对初学者能够有所帮助1. 音频初始化- (void)initRemoteIO { AudioUnitInitialize(audioUnit); [self initAudioSession];
ios RGBA数据转UIImage ios RGBA数据转UIImage UIImage 获取RGBA数据1. RGBA 数据由于工作需要 把ffmpeg解压出来的RGBA裸数据 转成UIImage格式的image 再imageview 上进行显示,所以需要使用到下边技术。2. 获取颜色空间CGColorSpaceRef colorSpace = CGColorSpaceCreateDev
ios AudioUnit 播放 pcm 数据 ios AudioUnit 播放 pcm 数据由于公司要做音频播放,配合ffmpeg,把音乐解码承pcm裸数据,然后通过ios AudioUnit播放。1,
解决 eclipse移植androidstudio Could not determine 的问题 解决 eclipse移植androidstudio Could not determine 的问题因为帮朋友移植eclipse工程到android studio上开发,按照教程先在eclipse 导出android 的工程,然后再android studio导入这个工程结果出现下边错误Could not determine the class-path for inte
腾讯 互动直播 ios soundtouch 崩溃问题 腾讯 互动直播 ios soundtouch 崩溃问题 因为公司需要变声功能,而腾讯sdk提供的变声只有几种,所以找到soundtouch,再移植android过程中没遇到问题,而再ios平台按照正常流程打包,调用却出现崩溃,通过定位发现,自己变声的接口没有用到。后来发现原来腾讯sdk自带了soundtouch功能,所以再打包soundtouch命名空间换下就可以了例如下边:n
ffmpeg 编码 apng 解决内存泄露问题 ffmpeg 编码 apng 解决内存泄露问题1.通过之前写的文章可以很容易进行apng的编码,但是通过使用memcheck内存检测,发现编码多张png图片造成了严重的内存泄露问题chenglong@chenglong-virtual-machine:~/work/ffmpeg$ valgrind --tool=memcheck --leak-check=full --show-r
ffmpeg 解码 png apng 图片 ffmpeg 解码 png apng 图片1,搭建环境参考网上搭建 ubuntu 下 ffmpeg 环境2. 定义解码结构体typedef struct Decode_PNG_Key{ int video_stream_index; AVFormatContext *pFormatCtx; AVCodecContext *pCodecCtx; AVCodec
ffmpeg 编码 png apng图片 ffmpeg 编码 png apng图片1. 搭建环境首先需要搭建ubuntu下,ffmpeg开发环境,这个网上有很多在这里就不多叙述了2. 定义编码器相关的结构体typedef struct Encode_PNG_Key{ AVFormatContext* pFormatCtx; AVOutputFormat* fmt; AVStream* vid
xcode 下 ffmpeg soundtouch faac x264 libyuv lame 一次打包armv7 armv7s arm64 xcode 下 ffmpeg soundtouch faac x264 libyuv lame 一次打包armv7 armv7s arm641,准备工作首先确定已经编译好了各个版本库2. 创建工程 工程名encoder3. 如1所示添加依赖库,添加自己代码4,选择基本ios设备 编译编译提示成功5,再工程平
xcode soundtouch 一次编译armv7 armv7s arm64 i386 i64 库 xcode soundtouch 一次编译armv7 armv7s arm64 i386 i64 库
mac 下移植 ffmpeg 支持x264 faac lame png 开启asm neon 加速 mac 下移植 ffmpeg 支持x264 faac lame png 开启asm neon 加速 1. 获取 ffmpeg 源码http://ffmpeg.org/releases/ffmpeg-2.8.11.tar.bz22.再ffmpeg-2.8.11 平级目录下创建build-ffmpeg.shtouch build-ffmpeg.sh3.设置权限
mac 下移植 faac mac 下移植 faac 1. 获取faac源码 faac-1.28https://sourceforge.net/projects/faac/files/faac-src/faac-1.28/2.再faac-1.28平级目录 创建 build-faac.sh脚本文件touch build-faac.sh3.设置 脚本权限sudo chmod 777
mac 下移植 x264 使用 neon 多线程加速 mac 下移植 x264 使用 neon加速1.获取x264源码git clone http://git.videolan.org/git/x264.git2. 再x264上级目录创建build_x264.shsudo chmod 777 build_x264.sh3.更改build_x264.sh的内容#!/bin/shCONFIGUR
腾讯互动直播 音频 视频 踩过的坑 二 腾讯互动直播 音频 视频 踩过的坑 二1),再项目中需要主播能够调节用户端听到的声音的大小,这里看到sdk里边有对应的调节音量大小的接口。 public native int SetAudioDataDBVolume(int var1, int var2); public native int GetAudioDataDBVolume(int var1);通过对帮助文档
腾讯互动直播 音频 视频 踩过的坑 腾讯互动直播 音频 视频 踩过的坑由于公司业务需要互动直播业务,再调用腾讯的sdk的时候,由于是小公司,很难即使得到腾讯技术人员回复,以下将列举我再音频,视频这块遇到一些坑腾讯互动sdk的地址:https://github.com/zhaoyang21cn/ILiveSDK_Android_Demos1,由于公司业务需要对互动直播观众端音频可以进行加密,听不清,
vmware下搭建mac开发环境 vmware下搭建mac开发环境参考连接:https://jingyan.baidu.com/article/54b6b9c0ec0a1b2d593b4745.html主要讲述下自己遇到的坑1,vmwave workstation 如果你要装mac 10.12 需要再安装vmwave workstation之前,运行链接所提到,unlock2.8。否则会出现你的你
android librtmp 推送h264流 aac流 基本过程总结五 推流aac android librtmp 推送h264流 aac流 基本过程总结三 推流aac1,aac 编码初始化定义编码的结构体typedef struct AudioEncodeFaacInformation{ faacEncHandle hEncoder; faacEncConfigurationPtr pConfiguration; int init_flag; unsi
android librtmp 推送h264流 aac流 基本过程总结四 推流x264 android librtmp 推送h264流 aac流 基本过程总结三 推流x2641. x264初始化配置注意:这里边我踩了一些坑,rtmp 推流过程中去掉nal中pps,sps,只允许一帧中只有一个nal片,之前测试初始化x264参数没注意到这个问题导致自己推流再nginx服务器中没有正确的切成ts流,播放异常。另外需要注意推流的时候一定要跟faac流一个时间线,要不然会出现音视
android librtmp 推送h264流 aac流 基本过程总结三 移植faac android librtmp 推送h264流 aac流 基本过程总结三 移植faac1. 下载faac源码https://sourceforge.net/projects/faac/files/faac-src/faac-1.28/faac-1.28.zip/download?use_mirror=nchc2. ubuntu 下交叉编译faac进入faac文件夹路径t
android librtmp 推送h264流 aac流 基本过程总结二 x264移植 android librtmp 推送h264流 aac流 基本过程总结二 x264移植1.下载x264 源码git clone http://git.videolan.org/git/x264.git2. 再ubuntu下,通过ndk 编译so库进入x264文件夹目录下,新建build_android.sh设置 build_android.sh的权限
android librtmp 推送h264流 aac流 基本过程总结一 移植librtmp 一.移植librtmp 到android平台1.下载 librtmp 源码git clone git://git.ffmpeg.org/rtmpdump2. ubuntu 下 编译rtmp创建jni文件夹mkdir jnicd jnitouch application.mkvi application.mkNDK_TO