Android 录音功能开发
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 录音功能开发相关推荐
- 一次搞懂 Android 音频开发
在接触Android音频开发后,陆陆续续的看了不少的文章,如果说查缺补漏把这些文章梳理清楚,然后逐个整合,那么确实也能完整的推导出音频开发需要掌握的技术.但是对于初学者来说,可能在开发中产生很多障碍以 ...
- 微信jssdk录音功能开发记录
微信jssdk录音功能开发记录 标签(空格分隔): 前端 0.需求描述 在微信浏览器内打开的页面,制作一个按钮,用户按住按钮后开始录音,松手后停止录音并将录音上传并长期保存. 1.开发流程 如果开发的 ...
- jssdk更新日志_微信jssdk录音功能开发记录
微信jssdk录音功能开发记录 标签(空格分隔): 前端 0.需求描述 在微信浏览器内打开的页面,制作一个按钮,用户按住按钮后开始录音,松手后停止录音并将录音上传并长期保存. 1.开发流程 如果开发的 ...
- Android多媒体开发介绍
Android多媒体开发介绍 一. 多媒体架构 基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4.H.264.MP3. ...
- Android WiFi开发教程(三)——WiFi热点数据传输
在上一篇文章中介绍了WiFi的搜索和连接,如果你还没阅读过,建议先阅读上一篇Android WiFi开发教程(二)--WiFi的搜索和连接.本篇接着简单介绍手机上如何通过WiFi热点进行数据传输. 跟 ...
- android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...
本文将带你了解Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...
- Android Studio开发环境及第一个项目
1. 在你的电脑上搭建Android平台开发环境. 2. 新建项目,实现以下基本内容: (1) 修改默认的APP的名称和图标(任意的,非默认的). (2) 显示个人信息,包括:照片.专业.姓名.学号等 ...
- Android UI开发第二十五篇——分享一篇自定义的 Action Bar
Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...
- [转]Android敏捷开发指南
原文地址:http://www.apkbus.com/android-72730-1-1.html 本文紧密结合移动开发方法与技术,围绕Android平台的开发探讨提供更高质量移动产品的解决方案.作者 ...
最新文章
- GDB调试及其调试脚本的使用
- linux mariadb 升级,linux mariadb
- 哈佛大学单细胞课程|笔记汇总 (二)
- Guayadeque成为音乐爱好者的开源播放器的6个原因
- java的向下转型_终于搞明白向下转型的作用了,还不懂的进来看下.
- 懂分析、会预测,你见过这样的华为云DAS吗?
- 递归求出第n项斐波那契数列_Java
- 网站转移服务器,网站转移云服务器
- 阿里云上运行Docker版本的PostgreSQL
- JavaScript内存泄漏的几种情况
- 深入理解java虚拟机【内存溢出实例】
- ZFS 学习(转载)
- Java入门教程:Java初学者容易犯的错误
- 图像梯度-Sobel算子
- 技术宅改变世界 如何在12306买到下铺
- 《福州往事》(抒情散文)
- 启蒙||那些人,那些剧||爱情+文学+英语
- 中美科学家造出“人-猴胚胎”,这会是魔幻剧情的开端吗?
- 推荐书籍:网络流量整形与带宽控制技术
- 80年代的Mac好用吗?
热门文章
- 10组团队项目-中期总结
- php怎么获取js值,php 怎么获取JS的值 ,新手折腾几天了 还请大侠赐教
- html中电子邮件地址怎么写,什么是Email地址?怎么写
- flash制作swf播放器
- Unity场景中的双相机设置,3D相机和2D相机设置
- Linux用户的授权与文件的权限管理
- 如果客户机同时得到多台dhcp服务器的ip地址_秘技,同时为三个女神装系统的方法...
- 量化进阶—— 索罗斯是如何操作交易体系的?
- 政务使用区块链技术,网络安全风险不容小觑
- java 工具类命名_排名前16的Java工具类