1、申请权限

<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2、开始录音

    //开始计时录音@SuppressLint("MissingPermission")
//    @SuppressLint("ClickableViewAccessibility")private void startRecording() {recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,RECORDER_SAMPLERATE, RECORDER_CHANNELS_SINGLE, RECORDER_AUDIO_ENCODING, bufferSize);recorder.startRecording();isRecording = true;recordingThread = new Thread(new Runnable() {@Overridepublic void run() {writeAudioDataToFile();}}, "AudioRecorder Thread");recordingThread.start();}

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

private void writeAudioDataToFile() {byte data[] = new byte[bufferSize];String filename = getTempFilename();strFileName = getTime();LgqLogPlus.d("开始录音地址===== "+filename);FileOutputStream os = null;try {os = new FileOutputStream(filename);} catch (FileNotFoundException e) {e.printStackTrace();}int read = 0;if (null != os) {while (isRecording) {read = recorder.read(data, 0, bufferSize);if (AudioRecord.ERROR_INVALID_OPERATION != read) {try {os.write(data);} catch (IOException e) {e.printStackTrace();}}}try {os.close();} catch (IOException e) {e.printStackTrace();}}
}

3、结束录音

private void stopRecording() {if (null != recorder) {isRecording = false;recorder.stop();recorder.release();isSend = true;recorder = null;recordingThread = null;}copyWaveFile(getTempFilename(), getFilename());deleteTempFile();
}

4、长按录音,放起结束录音

View.OnTouchListener onTouchListener = new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {int iAction = event.getAction();if (iAction == MotionEvent.ACTION_UP) {//抬起结束录音LgqLogPlus.e("抬起结束录音");if(isRecording){isRecording = false;stopRecording();strFilePath = getFilename();//最终语言路径spMap.clear();spMap.put(1, sp.load(getFilename(), 1));}}else if (iAction == MotionEvent.ACTION_DOWN){//按住开始录音LgqLogPlus.e("按住开始录音");if(!isRecording){isRecording = true;startRecording();}return true;}return false;}
};

demo连接:https://download.csdn.net/download/meixi_android/86737564

Android 录音功能开发相关推荐

  1. 一次搞懂 Android 音频开发

    在接触Android音频开发后,陆陆续续的看了不少的文章,如果说查缺补漏把这些文章梳理清楚,然后逐个整合,那么确实也能完整的推导出音频开发需要掌握的技术.但是对于初学者来说,可能在开发中产生很多障碍以 ...

  2. 微信jssdk录音功能开发记录

    微信jssdk录音功能开发记录 标签(空格分隔): 前端 0.需求描述 在微信浏览器内打开的页面,制作一个按钮,用户按住按钮后开始录音,松手后停止录音并将录音上传并长期保存. 1.开发流程 如果开发的 ...

  3. jssdk更新日志_微信jssdk录音功能开发记录

    微信jssdk录音功能开发记录 标签(空格分隔): 前端 0.需求描述 在微信浏览器内打开的页面,制作一个按钮,用户按住按钮后开始录音,松手后停止录音并将录音上传并长期保存. 1.开发流程 如果开发的 ...

  4. Android多媒体开发介绍

    Android多媒体开发介绍 一.       多媒体架构 基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4.H.264.MP3. ...

  5. Android WiFi开发教程(三)——WiFi热点数据传输

    在上一篇文章中介绍了WiFi的搜索和连接,如果你还没阅读过,建议先阅读上一篇Android WiFi开发教程(二)--WiFi的搜索和连接.本篇接着简单介绍手机上如何通过WiFi热点进行数据传输. 跟 ...

  6. android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...

    本文将带你了解Android应用开发Android 7.0  BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...

  7. Android Studio开发环境及第一个项目

    1. 在你的电脑上搭建Android平台开发环境. 2. 新建项目,实现以下基本内容: (1) 修改默认的APP的名称和图标(任意的,非默认的). (2) 显示个人信息,包括:照片.专业.姓名.学号等 ...

  8. Android UI开发第二十五篇——分享一篇自定义的 Action Bar

    Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...

  9. [转]Android敏捷开发指南

    原文地址:http://www.apkbus.com/android-72730-1-1.html 本文紧密结合移动开发方法与技术,围绕Android平台的开发探讨提供更高质量移动产品的解决方案.作者 ...

最新文章

  1. GDB调试及其调试脚本的使用
  2. linux mariadb 升级,linux mariadb
  3. 哈佛大学单细胞课程|笔记汇总 (二)
  4. Guayadeque成为音乐爱好者的开源播放器的6个原因
  5. java的向下转型_终于搞明白向下转型的作用了,还不懂的进来看下.
  6. 懂分析、会预测,你见过这样的华为云DAS吗?
  7. 递归求出第n项斐波那契数列_Java
  8. 网站转移服务器,网站转移云服务器
  9. 阿里云上运行Docker版本的PostgreSQL
  10. JavaScript内存泄漏的几种情况
  11. 深入理解java虚拟机【内存溢出实例】
  12. ZFS 学习(转载)
  13. Java入门教程:Java初学者容易犯的错误
  14. 图像梯度-Sobel算子
  15. 技术宅改变世界 如何在12306买到下铺
  16. 《福州往事》(抒情散文)
  17. 启蒙||那些人,那些剧||爱情+文学+英语
  18. 中美科学家造出“人-猴胚胎”,这会是魔幻剧情的开端吗?
  19. 推荐书籍:网络流量整形与带宽控制技术
  20. 80年代的Mac好用吗?

热门文章

  1. 10组团队项目-中期总结
  2. php怎么获取js值,php 怎么获取JS的值 ,新手折腾几天了 还请大侠赐教
  3. html中电子邮件地址怎么写,什么是Email地址?怎么写
  4. flash制作swf播放器
  5. Unity场景中的双相机设置,3D相机和2D相机设置
  6. Linux用户的授权与文件的权限管理
  7. 如果客户机同时得到多台dhcp服务器的ip地址_秘技,同时为三个女神装系统的方法...
  8. 量化进阶—— 索罗斯是如何操作交易体系的?
  9. 政务使用区块链技术,网络安全风险不容小觑
  10. java 工具类命名_排名前16的Java工具类