Android麦克风录音的实现
最近公司有一个业务,就是通过IM发送音频,我用的是环信的第三方,自定义发送音频,写了一个录音的demo,录制完成之后发送。
这个Demo测试之后感觉还不错,分享一下。
一、添加权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
二、XML文件(三个按钮)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="fill_parent"android:layout_height="fill_parent"><Button android:id="@+id/btnStart" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="录音"/><Button android:id="@+id/btnStop" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="停止"/><Button android:id="@+id/btnPlay" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="播放"/>
</LinearLayout>
三、Java代码
public class MainActivity extends Activity implements OnClickListener {private MediaPlayer mediaPlayer;private MediaRecorder mediaRecorder = new MediaRecorder();private File audioFile;private String msg;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btnStart = (Button) findViewById(R.id.btnStart);Button btnStop = (Button) findViewById(R.id.btnStop);Button btnPlay = (Button) findViewById(R.id.btnPlay);btnStart.setOnClickListener(this);btnStop.setOnClickListener(this);btnPlay.setOnClickListener(this);}@Overridepublic void onClick(View view) {try {switch (view.getId()) {case R.id.btnStart:// 设置音频来源(一般为麦克风)mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置音频输出格式(默认的输出格式)mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);// 设置音频编码方式(默认的编码方式)mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);// 创建一个临时的音频输出文件audioFile = File.createTempFile("record_", ".amr");mediaRecorder.setOutputFile(audioFile.getAbsolutePath());mediaRecorder.prepare();mediaRecorder.start();msg = "正在录音...";break;case R.id.btnStop:if (audioFile != null) {mediaRecorder.stop();}msg = "已经停止录音.";break;case R.id.btnPlay:if (audioFile != null) {mediaPlayer = new MediaPlayer();mediaPlayer.setDataSource(audioFile.getAbsolutePath());mediaPlayer.prepare();mediaPlayer.start();mediaPlayer.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mp) {setTitle("录音播放完毕.");}});msg = "正在播放录音...";}break;}setTitle(msg);Toast.makeText(this, msg, Toast.LENGTH_LONG).show();} catch (Exception e) {setTitle(e.getMessage());}}}
注释写的很清楚,但是还是有几点需要说明,我录音完成之后将文件保存到临时文件中,你在手机中是没办法找到的,你可以将你的手机root之后,用RE文件管理器打开指定的目录查看,或者你也可以改变一下文件的路径。
Android麦克风录音的实现相关推荐
- Android 麦克风录音动画
Android 麦克风录音动画 源代码 RecordView.java R.drawable.voice_recording 源代码 RecordView.java import android.co ...
- android 麦克风录音输出
添加权限 <!-- AUX --><uses-permission android:name="android.permission.RECORD_AUDIO" ...
- android麦克风录音权限设置,小米9 SE怎么设置麦克风权限 小米9 SE打开录音权限的设置方法...
小米9 SE怎么设置麦克风权限?平时我们用小米9 se第一次打开软件时,会遇到要打开麦克风权限的提示,如果第一次拒绝了这个麦克风权限的话,后面要打开,就需要来进行设置一下了,今天新机汇小编为大家分享一 ...
- android按住录音按钮_Android实现录音方法(仿微信语音、麦克风录音、发送语音、解决5.0以上BUG)...
先给大家展示下效果图,如果大家感觉不错,请参考使用方法, 效果图如下所示: 使用方法: 录音工具类:AudioRecoderUtils.java,代码如下: public class AudioRec ...
- Android 录音实现方法、仿微信语音、麦克风录音、发送语音
效果图(注!由于使用的模拟器录制,所以图片中的录音时候话筒上下波动比较小,手机上正常!): 使用方法: 录音工具类:AudioRecoderUtils.java,代码如下: public class ...
- Android 录音实现方法、仿微信语音、麦克风录音、发送语音、解决5.0以上BUG
原文地址:https://blog.csdn.net/fan7983377/article/details/51750583 本文修改自:http://www.jianshu.com/p/06eca5 ...
- Android 实时录音和回放,边录音边播放 (KTV回音效果)
原文地址为: Android 实时录音和回放,边录音边播放 (KTV回音效果) 上一篇介绍了如何使用Mediarecorder来录音,以及播放录音.不过并没有达到我的目的,一边录音一边播放.今天就讲解 ...
- android java 录音放大_Android实现录音功能实现实例(MediaRecorder)
本文介绍了Android实现录音的实例代码(MediaRecorder),分享给大家,具体如下: Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord, ...
- Android电话录音
Android电话录音 本例是一个通用的电话录音方案,先创建一个广播接收, package zhangphil.phonerecorder;import android.content.Broa ...
最新文章
- ATT将在伦敦建设第二个数据中心
- 剖析Disruptor:为什么会这么快?(一)锁的缺点
- 小程序richtext_用于基于SWT的应用程序的RichText编辑器组件
- java 加法 溢出_StackOverflow热帖:Java整数相加溢出怎么办?Java8一步搞定~
- php随机生成车牌号,生成汽车牌照
- Java 获取远程文件的大小
- Upload-Labs(1-5)
- Win10怎么把登录密码去掉
- 收款收据设计html,统一收款收据打印软件怎么制作收据 制作打印的方法
- 凯恩帝k1000ti参数设置_凯恩帝K1000T系统用户手册.pdf
- 清理电脑C盘的方法汇总
- 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
- java多线程运行结果写入文件错误java.io.IOException: Stream closed
- 化工厂人员定位应考虑哪些因素?
- 线性链表实现对二进制数加1运算
- js台阶算法问题(上台阶模拟器)
- setsockopt()和getsockopt()
- FFmpeg再学习 -- 将 jpeg 转成 mp4
- java中h5是什么_[ 面试系列 ] - 三:H5 是什么?
- 几款优秀的开源数据挖掘工具
热门文章
- hdu 6681 Rikka with Cake(扫描线)
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
- 全网最全Python的基本用法,序列,列表,字符串,方法解析(案例)
- 守望先锋html网页设计,守望先锋-页面设计|网页|游戏/娱乐|梦冥轩- 原创作品 - 站酷 (ZCOOL)...
- F3--FPGA读写EEPROM实例2022-12-12
- Talk预告 | 德国马普所修宇亮:如何多快好省地重建三维数字人
- 形式语言自动机(3)—— 三种有穷自动机
- python五子棋游戏控制台版_python实现五子棋游戏(pygame版)
- Spring Cloud 集成 Hystrix 熔断器
- linux使用寿命上传工具,PowerTOP:在 Linux 上监视电量使用和改善笔记本电池寿命【马哥教育新闻快报452期】...