在上一篇文章<(一)Audio子系统之AudioRecord.getMinBufferSize>中已经介绍了AudioRecord如何获取最小缓冲区大小,接下来,继续分析AudioRecorder方法中的new AudioRecorder的实现,本文基于Android4.4,Android5.1请戳这里 注:本篇文章仅作为笔记使用,如其中有误或与Android5.1版本的分析不同,以Android5.1版本的为准 函数原型: public AudioRecord(int audioSource…
在上一篇文章<(一)Audio子系统之AudioRecord.getMinBufferSize>中已经介绍了AudioRecord如何获取最小缓冲区大小,接下来,继续分析AudioRecorder方法中的new AudioRecorder的实现,本文基于Android5.1,Android4.4请戳这里 函数原型: public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat…
在上一篇文章<(二)Audio子系统之new AudioRecord()>中已经介绍了Audio系统如何创建AudioRecord对象以及输入流,并创建了RecordThread线程,接下来,继续分析AudioRecord方法中的startRecording的实现 函数原型: public void startRecording() throws IllegalStateException 作用: 开始进行录制 参数: 无 返回值: 无 异常: 若没有初始化完成时,抛出IllegalState…
在文章<基于Allwinner的Audio子系统分析(Android-5.1)>中已经介绍了Audio的系统架构以及应用层调用的流程,接下来,继续分析AudioRecorder方法中的getMinBufferSize的实现 函数原型: public static int getMinBufferSize (int sampleRateInHz, int channelConfig, int audioFormat) 作用: 返回成功创建AudioRecord对象所需要的最小缓冲区大小 参数:…
  在上一篇文章<(三)Audio子系统之AudioRecord.startRecording>中已经介绍了AudioRecord如何开始录制音频,接下来,继续分析AudioRecord方法中的read的实现     函数原型:   public int read(byte[] audioData, int offsetInBytes, int sizeInBytes)   作用:   从音频硬件录制缓冲区读取数据,直接复制到指定缓冲区. 如果audioBuffer不是直接的缓冲区,此方法总是…
在上一篇文章<(四)Audio子系统之AudioRecord.read>中已经介绍了AudioRecord如何获取音频数据,接下来,继续分析AudioRecord方法中的stop的实现 函数原型: public void stop() throws IllegalStateException 作用: 暂停录制 参数: 无 返回值: 无 异常: 若没有初始化完成时,抛出IllegalStateException 接下来进入系统分析具体实现 frameworks/base/media/java/a…
  在上一篇文章<(五)Audio子系统之AudioRecord.stop>中已经介绍了AudioRecord如何暂停录制,接下来,继续分析AudioRecord方法中的release的实现   函数原型: public void release() 作用: 释放Audio资源 参数: 无 返回值: 无   接下来进入系统分析具体实现 frameworks/base/media/java/android/media/AudioRecord.java public void release()…
前言 一直想总结下Audio子系统的博客,但是各种原因(主要还是自己懒>_<),一直拖到现在才开始重新整理,期间看过H8(Android-4.4),T3(Android-4.4),A64(Android-5.1)上的AudioRecoder录音流程,总的来说,几个平台上的audio系统都差不多,这里还是主要以A64来分析. =================================================== 我是分割线 ============================…
在音视频开发中,录音当然是必不可少的.首先我们要学会单独的录音功能,当然这里说的录音是指用AudioRecord来录音,读取录音原始数据,读到的就是所谓的PCM数据.对于录音来说,最重要的几个参数要搞明白: 1.simpleRate采样率,采样率就是采样频率,每秒钟记录多少个样本. 2.channelConfig通道配置,其实就是所谓的单通道,双通道之类的,AudioFormat.CHANNEL_IN_MONO单通道,AudioFormat.CHANNEL_IN_STEREO双通道,这里只列了这…
原因: 因为各大浏览器都为了节省流量,做出了优化,在用户没有行为动作时(交互)不予许自动播放: /音频,写法一 <audio src="music/bg.mp3" autoplay loop controls>你的浏览器还不支持哦</audio> //音频,写法二 <audio controls="controls"> <source src="music/bg.ogg" type="audio…