最近公司有一个业务,就是通过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麦克风录音的实现相关推荐

  1. Android 麦克风录音动画

    Android 麦克风录音动画 源代码 RecordView.java R.drawable.voice_recording 源代码 RecordView.java import android.co ...

  2. android 麦克风录音输出

    添加权限 <!-- AUX --><uses-permission android:name="android.permission.RECORD_AUDIO" ...

  3. android麦克风录音权限设置,小米9 SE怎么设置麦克风权限 小米9 SE打开录音权限的设置方法...

    小米9 SE怎么设置麦克风权限?平时我们用小米9 se第一次打开软件时,会遇到要打开麦克风权限的提示,如果第一次拒绝了这个麦克风权限的话,后面要打开,就需要来进行设置一下了,今天新机汇小编为大家分享一 ...

  4. android按住录音按钮_Android实现录音方法(仿微信语音、麦克风录音、发送语音、解决5.0以上BUG)...

    先给大家展示下效果图,如果大家感觉不错,请参考使用方法, 效果图如下所示: 使用方法: 录音工具类:AudioRecoderUtils.java,代码如下: public class AudioRec ...

  5. Android 录音实现方法、仿微信语音、麦克风录音、发送语音

    效果图(注!由于使用的模拟器录制,所以图片中的录音时候话筒上下波动比较小,手机上正常!): 使用方法: 录音工具类:AudioRecoderUtils.java,代码如下: public class ...

  6. Android 录音实现方法、仿微信语音、麦克风录音、发送语音、解决5.0以上BUG

    原文地址:https://blog.csdn.net/fan7983377/article/details/51750583 本文修改自:http://www.jianshu.com/p/06eca5 ...

  7. Android 实时录音和回放,边录音边播放 (KTV回音效果)

    原文地址为: Android 实时录音和回放,边录音边播放 (KTV回音效果) 上一篇介绍了如何使用Mediarecorder来录音,以及播放录音.不过并没有达到我的目的,一边录音一边播放.今天就讲解 ...

  8. android java 录音放大_Android实现录音功能实现实例(MediaRecorder)

    本文介绍了Android实现录音的实例代码(MediaRecorder),分享给大家,具体如下: Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord, ...

  9. Android电话录音

     Android电话录音 本例是一个通用的电话录音方案,先创建一个广播接收, package zhangphil.phonerecorder;import android.content.Broa ...

最新文章

  1. ATT将在伦敦建设第二个数据中心
  2. 剖析Disruptor:为什么会这么快?(一)锁的缺点
  3. 小程序richtext_用于基于SWT的应用程序的RichText编辑器组件
  4. java 加法 溢出_StackOverflow热帖:Java整数相加溢出怎么办?Java8一步搞定~
  5. php随机生成车牌号,生成汽车牌照
  6. Java 获取远程文件的大小
  7. Upload-Labs(1-5)
  8. Win10怎么把登录密码去掉
  9. 收款收据设计html,统一收款收据打印软件怎么制作收据 制作打印的方法
  10. 凯恩帝k1000ti参数设置_凯恩帝K1000T系统用户手册.pdf
  11. 清理电脑C盘的方法汇总
  12. 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
  13. java多线程运行结果写入文件错误java.io.IOException: Stream closed
  14. 化工厂人员定位应考虑哪些因素?
  15. 线性链表实现对二进制数加1运算
  16. js台阶算法问题(上台阶模拟器)
  17. setsockopt()和getsockopt()
  18. FFmpeg再学习 -- 将 jpeg 转成 mp4
  19. java中h5是什么_[ 面试系列 ] - 三:H5 是什么?
  20. 几款优秀的开源数据挖掘工具

热门文章

  1. hdu 6681 Rikka with Cake(扫描线)
  2. Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
  3. 全网最全Python的基本用法,序列,列表,字符串,方法解析(案例)
  4. 守望先锋html网页设计,守望先锋-页面设计|网页|游戏/娱乐|梦冥轩- 原创作品 - 站酷 (ZCOOL)...
  5. F3--FPGA读写EEPROM实例2022-12-12
  6. Talk预告 | 德国马普所修宇亮:如何多快好省地重建三维数字人
  7. 形式语言自动机(3)—— 三种有穷自动机
  8. python五子棋游戏控制台版_python实现五子棋游戏(pygame版)
  9. Spring Cloud 集成 Hystrix 熔断器
  10. linux使用寿命上传工具,PowerTOP:在 Linux 上监视电量使用和改善笔记本电池寿命【马哥教育新闻快报452期】...