android用手机录音保存到sd卡中;
布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><Buttonandroid:id="@+id/bt_start"android:layout_width="match_parent"android:text="start"android:layout_height="wrap_content"></Button><Buttonandroid:id="@+id/bt_end"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="stop"></Button></LinearLayout>
  1. 准备保存文件的路径及文件;
  2. 创建MediaRecorder对象,
  3. 调用MediaRecorder的start方法;
  4. 结束录音
  5. .调用MediaRecorder的stop方法;
  6. 释放资源;

开始录音:

 private void startRecord(){if (recorder==null){File dir = new File(Environment.getExternalStorageDirectory(),"sound");if (!dir.exists()){dir.mkdir();}File file=new File(dir,System.currentTimeMillis()+".amr");if (!file.exists()){try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}recorder =new MediaRecorder();recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//输入源通过话筒录音;recorder.setOutputFormat(MediaRecorder.AudioEncoder.AMR_WB);//输出格式recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);//音频编码recorder.setOutputFile(file.getAbsolutePath());//设置写出文件;try {recorder.prepare();recorder.start();} catch (IOException e) {e.printStackTrace();}}}

结束录音:

    private void endRecord(){if (recorder!=null){recorder.stop();recorder.release();recorder=null;}}

具体代码实现:

package com.example.record;import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;import androidx.appcompat.app.AppCompatActivity;import java.io.File;
import java.io.IOException;public class MainActivity extends AppCompatActivity {private Button bt_1,bt2;private MediaRecorder recorder ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.bt_start).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startRecord();}});findViewById(R.id.bt_end).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {endRecord();}});}private void startRecord(){if (recorder==null){File dir = new File(Environment.getExternalStorageDirectory(),"sound");if (!dir.exists()){dir.mkdir();}File file=new File(dir,System.currentTimeMillis()+".amr");if (!file.exists()){try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}recorder =new MediaRecorder();recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//输入源通过话筒录音;recorder.setOutputFormat(MediaRecorder.AudioEncoder.AMR_WB);//输出格式recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB);//音频编码recorder.setOutputFile(file.getAbsolutePath());//设置写出文件;try {recorder.prepare();recorder.start();} catch (IOException e) {e.printStackTrace();}}}private void endRecord(){if (recorder!=null){recorder.stop();recorder.release();recorder=null;}}
}

最后记得添加权限:

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

写入文件的权限,调用录音的权限

android利用MediaRecorder实现录音功能相关推荐

  1. Android之mediarecorder中的方法以及工作流程的过程

    嵌套.关联的类 class MediaRecorder.AudioEncoder 定义音频编码 class MediaRecorder.AudioSource 定义声音资源 interface Med ...

  2. Android使用MediaRecorder和Camera实现视频录制及播放功能整理

    转载请注明出处:http://blog.csdn.net/woshizisezise/article/details/51878566 这两天产品经理向我丢来一个新需求,需要在项目里添加一个视频录制的 ...

  3. android p通话录音功能,Android编程实现通话录音功能的方法

    本文实例讲述了Android编程实现通话录音功能的方法.分享给大家供大家参考,具体如下: 因受系统限制,只能录自已麦的声音,录不到对方的声音,可能需要改内核才能实现双向录音: 接通电话和挂断电话时,震 ...

  4. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  5. android列表实现置顶,Android利用RecyclerView实现全选、置顶和拖拽功能示例

    Android利用RecyclerView实现全选.置顶和拖拽功能示例 发布时间:2020-08-23 16:26:42 来源:脚本之家 阅读:159 作者:爱开发 前言 今天给大家分享是如何在Rec ...

  6. android利用反射调用截屏api,Android利用反射机制调用截屏方法和获取屏幕宽高的方法...

    想要在应用中进行截屏,可以直接调用 View 的 getDrawingCache 方法,但是这个方法截图的话是没有状态栏的,想要整屏截图就要自己来实现了. 还有一个方法可以调用系统隐藏的 screen ...

  7. 我的Android进阶之旅------gt;Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed....

    今天在调用MediaRecorder.stop(),报错了,java.lang.RuntimeException: stop failed. E/AndroidRuntime(7698): Cause ...

  8. (转)[Android] 利用 ant 脚本修改项目包名

    [Android] 利用 ant 脚本修改项目包名在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求 房价上半年下行 下半年或回暖 在不同的OEM下有不同的包名,不同的资源,不 ...

  9. android 利用eclipse观察内存变化情况

    android 利用eclipse观察内存变化情况 使用方法比较简单: · 选择DDMS视图,并打开Devices视图和Heap视图 · 点击选择要监控的进程,比如:上图中我选择的是system_pr ...

最新文章

  1. IDEA/Git 设置多个push远程仓库或者同时提交多个push仓库
  2. mysql 会用文件系统吗_MySQL的文件系统_MySQL
  3. 一个古帝国做产品的故事
  4. toft 测试用例rat_一篇文章详述配对测试的测试用例设计!强烈建议收藏
  5. eclipse启动tomcat不能正常访问问题
  6. Android 调整屏幕分辩率
  7. Eclipse中安装Ext插件(Spket IDE)
  8. php中echo有哪些,php中echo和print有什么区别
  9. python用代码执行另一个python文件
  10. 85-scala版spark2.x读取es6.x
  11. java中多态案例工厂类,Java中构造器内部的多态方法的行为实例分析
  12. 【算法】普通方法和筛选法求素数
  13. Redis 如何简化实现微服务的设计模式?
  14. 2021-09-28智能门锁的设计新方案
  15. 经纬度PLT文件格式说明
  16. 最原始的yuv图像叠加文字的实现--手动操作像素
  17. 基于STM32的卧室智慧监测系统
  18. linux开机引导界面美化,Ubuntu16.04引导界面美化(burg)
  19. 扶贫?教育?地铁?这里有跨界也能实现的企业数字化新操作!
  20. samba共享文件时端口问题

热门文章

  1. VITAL视频目标跟踪源码运行笔记——Testing模式
  2. VMware Horizon Client for Windows 7 64bit实测可用
  3. 全套S7-1200一拖三恒压供水程序样例+PID样例+触摸屏样例
  4. CLion:The C compiler identification is unknown, CMake Error;Cygwin的安装配置方法
  5. 幼儿教师计算机考核方案,欢欢民艺幼儿园语言文字规范化工作教师考核标准
  6. Atik工业相机应用案例研究——涡轮叶片氧化铝检测成像系统
  7. 3d游戏项目实训一周总结 2
  8. 3. “强人”对公司运营成本核算的影响
  9. 修改植物大战僵尸游戏存档,二进制绘制字符或图形
  10. PROTAC与抗体偶联药物的结合