![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
qw_stone
文不能测字,武不能防身
展开
-
OpenSL ES与AAudio简单介绍
原因:在耳返功能时,如果使用AudioRecord和AudioTrack进行采集与播放会造成延迟问题,故需要涉及到openSL ES与AAudio的使用。概况:OpenSL ES与AAudio简单理解为嵌入式跨平台免费的音频处理库,具有高性能,低延迟的特性。AAudio是作为OpenSL ES库的轻量级原生Android替代项。AAudio性能与功能上更加。但是AAudio只有在Android...原创 2019-11-19 18:20:27 · 6302 阅读 · 0 评论 -
MediaCodec编码
原因:由于涉及到yuv的编码故使用android自带的MediaCodec模块进行硬件编码概况:通过获取编码设备信息创建编码对象,然后设置编码参数,通过输入输出缓冲区进行数据的传递和读取。流程如下:首先获取当前设备支持的编解码设备信息:首先获取codc个数,然后判断是否是编码codec. m_codeccount = MediaCodecList.getCodecCount();...原创 2019-11-15 17:36:41 · 1686 阅读 · 0 评论 -
OpenGLES播放NV12流程
原因:为了实现yuv的播放故使用到了OpenGLES,在此介绍一下使用流程概况:使用着色器程序将yuv转换为RGB,然后利用Renderer渲染器将数据渲染到GLSufraceView上,故我们需要实现着色器程序,渲染器,渲染视图。首先视图创建伪代码如下:首先设置OpengGL的使用版本,然后设置一个渲染Renderer,此时的渲染Renderer就是我们自己实现的模块,紧接着设置渲染模式...原创 2019-11-14 14:44:36 · 1199 阅读 · 0 评论 -
Camera1介绍
原因:由于涉及到视频的采集和预览故在此记录一下Camera1的使用流程概况:通过配置Camera1的参数后创建Camera1对象,通过设置预览或者不预览然后触发采集回调。流程如下:导入头文件伪代码如下:import android.hardware.Camera;获取采集设备个数,找到对应的采集设备进行打开:m_iCount = Camera.getNumberOfCa...原创 2019-11-12 14:41:06 · 1214 阅读 · 0 评论 -
android添加Button
原因:由于编写测试程序设计到按钮的添加故在此记录一下使用流程。概况:通过手动添加Button控件,并通过Id进行关联,最终实现点击事件。流程如下:首先添加Button按钮:打开activity_main.xml布局文件.然后选择了手动拖动添加Button按钮,点击Design页面选择Button拖动到页面布局中.打开对应Text页面可以看到对应的Button名字和Id。修改显示内如...原创 2019-11-11 15:59:03 · 1484 阅读 · 0 评论 -
AudioTrack介绍
原因:由于需要实现音频播放,故使用AudioTrack实现功能.概况:音频播放可以使用MediaPlayer和AudioTrack两种方案,MediaPlayer可以播放多种格式的语音文件,例如.mp3,.wmv.等.而AudioTrack只能播放.pcm文件.通过了解可以看出MediaPlayer底层同样使用AudioTrack进行pcm填充.流程如下:首先进行创建一个AudioTrac...原创 2019-11-11 15:31:36 · 592 阅读 · 0 评论 -
FileOutputStream与FileInputStream使用
原因:由于使用AudioRecord需要进行文件保存,故需要使用到FileOutputStream的使用概况:通过File创建文件,使用FileOutputStream创建输出实例,通过write进行写入。首先导入头文件如下:import java.io.File;import java.io.FileOutputStream;获取文件路径并通过File进行文件创建伪代码如...原创 2019-11-08 17:04:47 · 522 阅读 · 1 评论 -
AudioRecord采集
原因:准备整理一遍从采集,编码,推流,拉流,解码,播放流程概况:利用AudioRecord实现音频采集。AudioRecord:android的媒体操作模块被定义到android/media/中,可以看出AudioRecord为java接口,而内部调用的为JNI接口,而media内部封装的为libmeida.so模块。且音频采集有AudioRecord和MediaRecord,不同之处在于...原创 2019-11-08 16:44:36 · 457 阅读 · 0 评论 -
android创建so和调用流程
原因:由于需要将混音模块封装成android的.so,故在此记录一下有关so的创建和流程调用概况:通过JNI编写生成.so文件,通过.so文件进行内部方法的调用.JNI:java native interface,是native编程接口,它允许在java虚拟机内运行java代码与其他编程语言(一般C/C++)模块进行交互。JNI调用原因:1:标准java类库中不支持应用程序所需的功...原创 2019-11-06 16:59:55 · 560 阅读 · 0 评论