android录音

Android 能够暂停的录音功能

99封情书 提交于 2020-03-29 12:17:19
Android ApI提供了MediaRecorder和AudioRecord两个类给开发者来很方便地实现音视频的录制(前者可以实现音频和视频的录制,后者只能实 现音频的录制)。这两个类都提供了start()和stop()方法用于开始和结束音频或视频的录制,但令人费解的是这两个类都没有提供pause()方 法用于暂停录制音视频,因为在实际应用当中,暂停录制的功能是非常有必要的Android 实现能够暂停的录音功能 需实现音频录制的暂停功能,并且生成的音频文件格式必须是m4a格式 为什么项目中音频文件一定要采用m4a格式的呢?有以下几点原因: 1. 录制相同时间的音频,使用m4a格式存储的文件的大小要比使用其它格式类型存储的文件的大小要小(通过实验多次,在相同采样率16000的情况下,一般录 制5分钟的音频,采用m4a格式存储的音频文件只有1.2Mb,而采用arm、mp3及其它格式的一般都有2-5Mb),这样当用户需要 下载 或上传录制的音频文件时,可以节省流量,并且相同压缩率的前提下,m4a格式音频的音质相比其它格式的也更高; 2.产品同时拥有Android客户端和IOS客户端,那为了避免使用Android客户端的用户录制的音频上传到服务器之后,使用IOS客户端的用户下 载下来发生无法播放的问题,我们需统一录制音频的存储格式

Android AudioRecord 的使用

懵懂的女人 提交于 2020-01-31 11:51:11
AudioRecord 本工程实现pcm多配置(采样率、文件格式可选)的录音和播放工具,可用户音频的录制。 工程代码:https://github.com/worson/AudioRecord.git 录音参数 在安卓应用中,使用AudioRecord可实现更灵活的录音配置,AudioRecord录制的是原始的pcm数据。 AudioRecord的构造方法如下: AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes) audioSource: 音频录制的音原,具体如下 MediaRecorder.AudioSource.CAMCORDER 设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风 MediaRecorder.AudioSource.DEFAULT 默认音频源 MediaRecorder.AudioSource.MIC 设定录音来源为主麦克风。 MediaRecorder.AudioSource.VOICE_CALL 设定录音来源为语音拨出的语音与对方说话的声音 MediaRecorder.AudioSource.VOICE_COMMUNICATION 摄像头旁边的麦克风

H5录音音频可视化-实时波形频谱绘制、频率直方图

南笙酒味 提交于 2020-01-18 00:28:37
这段时间给 GitHub Recorder开源库 添加了两个新的音频可视化功能,比以前单一的动态波形显示丰富了好多(下图后两行是不是比第一行看起来丰满些);趁热打铁写了一个音频可视化相关扩展测试代码,下面这张就是测试Gif截图,看起来还算过得去, 测试地址 上面这些波形、频率的计算和显示都是由纯js代码编写的,并未用到浏览器专有特性,因此可以方便的移植到其他语言实现,比如移植到Android、IOS原生实现。 FrequencyHistogramView音频可视化频率直方图显示 此功能源码: frequency.histogram.view.js + lib.fft.js 12kb大小源码,音频可视化频率直方图显示;外观为上面Gif图最后一行,可通过参数配置绘制成不同的外观。 此扩展核心算法参考Java开源库 jmp123 的代码编写的, jmp123 版本 0.3 ;直方图我特意优化主要显示0-5khz语音部分,其他高频显示区域较小,不适合用来展示音乐频谱。 要获得PCM频率信息,需要将PCM由时域转换成频域,这里就用到了 FFT算法 快速傅里叶变换,里面水很深我就没有深入研究了,这里直接用的jmp123里面的FFT实现,纯js代码实现100行不到。我们只管使用就ok了,假设有 44100hz 采样率的 16位 PCM数据,取 1024个 采样数据经过FFT变换后,会输出

Android 录音和播放

折月煮酒 提交于 2020-01-15 04:02:00
  今天工作上需要做一个一边录音一边播放的功能,大致原因是有一个外部设备输入音频到我们机器,然后我们机器需要马上把音频播放出来。所以了解了一些有关录音和播放的知识。接到这个任务的第一反应就是看看Android源码里面的录音Demo,因此今天针对Android的录音demo程序讲解一些录音和播放相关知识。   今天主要讲解一下使用MediaRecorder 实现录音,主要是参照Android官网介绍来说明。   今天讲的并不能实现一边录音一边播放,下一篇文章我再说如何解决这问题。下面是我们今天要讲解的Mediarecorder的状态机图。摘录自Android官网。 (PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434) 1、使用Mediarecorder 录音   MediaRecorder类用来进行媒体采样,包括音频和视频。也就是用来记录音频和视频方法的类,记录的数据一般都是写入到文件里面。因此我们可以通过这个类实现录音和录视频的功能。下面介绍MediaRecorder用来录音的简单方法: //Edited by mythou//http://www.cnblogs.com/mythou/ MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource

使用AudioRecorder录音

。_饼干妹妹 提交于 2020-01-11 04:50:50
安仔夏天勤奋 - 音视频理解的知识笔记 android平台上的音频采集一般就两种方式: 1、使用MediaRecorder进行音频采集。 MediaRecorder 是基于 AudioRecorder 的 API(最终还是会创建AudioRecord用来与AudioFlinger进行交互) ,它可以直接将采集到的音频数据转化为执行的编码格式,并保存。这种方案相较于调用系统内置的用用程序,便于开发者在UI界面上布局,而且系统封装的很好,便于使用,唯一的缺点是使用它录下来的音频是经过编码的,没有办法的得到原始的音频。同时MediaRecorder即可用于音频的捕获也可以用于视频的捕获相当的强大。实际开发中没有特殊需求的话,用的是比较多的! 2、使用AudioRecord进行音频采集 AudioRecord 是一个比较偏底层的API,它可以获取到一帧帧PCM数据,之后可以对这些数据进行处理。AudioRecord这种方式采集最为灵活,使开发者最大限度的处理采集的音频,同时它捕获到的音频是原始音频PCM格式的!像做变声处理的需要就必须要用它收集音频。 3、实例化AudioRecord audioRecord = new AudioRecord(audioSource,sampleRateInHz,channelConfig,audioFormat, 参数介绍 //

Android MP3录音实现

感情迁移 提交于 2020-01-04 21:30:38
版权声明: 欢迎转载,但请保留文章原始出处 作者: GavinCT 出处: http://www.cnblogs.com/ct2011/p/4080193.html Android录音支持的格式有amr、aac,但这两种音频格式在跨平台上表现并不好。 MP3显然才是跨平台的最佳选择。 近期由于项目需要,实现了这个需求,代码托管在Github上,欢迎拍砖 项目地址 GavinCT/AndroidMP3Recorder 使用方法见:README.md 实现思路概述 在分析代码前,我们需要明确几个问题 1. 如何最终生成MP3 实现MP3格式最好是借助Lame这个成熟的解决方案。 对于Android来说,需要借助JNI来调用Lame的C语言代码,实现音频格式的转化。 2. 如何获取最初的音频数据 AudioRecord类可以直接帮助我们获取音频数据。 3. 如何进行转换 网上有代码是先录制后转为MP3,这种效率比较低。因为如果录音时间过长,转换时间就会相应变长,用户在存储录音时需要等待的时间就会变长。 Samsung Developers先录后转示例代码 显然,这种方案是不可取的。 我们需要的是边录边转的实现方式,这样在停止录音进行存储的时候,就不会花费太长时间。 实现代码介绍 既然是录音,我们上面也提到了需要使用AudioRecord类,我们就从这个类的构造器开始说起 构造器

Android MP3录音实现

旧街凉风 提交于 2020-01-04 21:29:26
版权声明: 欢迎转载,但请保留文章原始出处 作者: GavinCT 出处: http://www.cnblogs.com/ct2011/p/4080193.html Android录音支持的格式有amr、aac,但这两种音频格式在跨平台上表现并不好。 MP3显然才是跨平台的最佳选择。 近期由于项目需要,实现了这个需求,代码托管在Github上,欢迎拍砖 项目地址 GavinCT/AndroidMP3Recorder 使用方法见:README.md 实现思路概述 在分析代码前,我们需要明确几个问题 1. 如何最终生成MP3 实现MP3格式最好是借助Lame这个成熟的解决方案。 对于Android来说,需要借助JNI来调用Lame的C语言代码,实现音频格式的转化。 2. 如何获取最初的音频数据 AudioRecord类可以直接帮助我们获取音频数据。 3. 如何进行转换 网上有代码是先录制后转为MP3,这种效率比较低。因为如果录音时间过长,转换时间就会相应变长,用户在存储录音时需要等待的时间就会变长。 Samsung Developers先录后转示例代码 显然,这种方案是不可取的。 我们需要的是边录边转的实现方式,这样在停止录音进行存储的时候,就不会花费太长时间。 实现代码介绍 既然是录音,我们上面也提到了需要使用AudioRecord类,我们就从这个类的构造器开始说起 构造器

【Android】【录音】Android录音--AudioRecord、MediaRecorder

隐身守侯 提交于 2019-12-29 04:42:14
【Android】【录音】Android录音--AudioRecord、MediaRecorder Android提供了两个API用于实现录音功能:android.media.AudioRecord、android.media.MediaRecorder。 网上有很多谈论这两个类的资料。现在大致总结下: 1、AudioRecord 主要是实现边录边播(AudioRecord+AudioTrack)以及对音频的实时处理(如会说话的汤姆猫、语音) 优点:语音的实时处理,可以用代码实现各种音频的封装 缺点:输出是PCM语音数据,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩 示例: 使用AudioRecord类录音,并实现WAV格式封装。录音20s,输出的音频文件大概为3.5M左右(已写测试代码) 2、MediaRecorder 已经集成了录音、编码、压缩等,支持少量的录音音频格式,大概有.aac(API = 16) .amr .3gp 优点:大部分以及集成,直接调用相关接口即可,代码量小 缺点:无法实时处理音频;输出的音频格式不是很多,例如没有输出mp3格式文件 示例: 使用MediaRecorder类录音,输出amr格式文件。录音20s,输出的音频文件大概为33K(已写测试代码) 3、音频格式比较 WAV格式:录音质量高,但是压缩率小,文件大

浅入浅出Android(008):使用MediaRecorder录音

霸气de小男生 提交于 2019-12-22 19:57:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 使用MediaRecorder既可以录音也可以录像。本文先只讲如何录音。测试的系统是android4。 1、增加录音和读写外部存储的权限 修改AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.HelloWorld" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="14"/> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <activity

Android 音频

人盡茶涼 提交于 2019-12-10 10:53:11
文章目录 AudioRecorder与MediaRecorder的比较 AudioRecorder 构造参数 AudioTrack 代码解析 1. 创建一个AudioRecorder对象及初始化 2. 启动录音 3. 录音线程 4. 获取录音裸数据 5. 给数据加header,转换成wav格式 6. 停止录音 MediaRecorder workflow Error/Info Listener usually method AudioRecorder与MediaRecorder的比较 以下内容来自博客:https://www.cnblogs.com/Amandaliu/archive/2013/02/04/2891604.html 若有侵权,立即删除 1. AudioRecord 主要是实现边录边播(AudioRecord+AudioTrack)以及对音频的实时处理(如会说话的汤姆猫、语音) 优点:语音的实时处理,可以用代码实现各种音频的封装 缺点:输出是PCM语音数据,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩 示例: 使用AudioRecord类录音,并实现WAV格式封装。录音20s,输出的音频文件大概为3.5M左右(已写测试代码) 2、MediaRecorder 已经集成了录音、编码、压缩等,支持少量的录音音频格式,大概有.aac(API