MediaRecorder实现录音的功能

代码如下:

    Button mBtnAudio,mBtnunAudio;
    MediaRecorder recorder;//录音类
    String appHome;//保存路径

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_audiorecord);
        mBtnAudio=findViewById(R.id.mBtnAudio);//开始按钮
        mBtnunAudio=findViewById(R.id.mBtnunAudio);//停止按钮
        //保存到手机的文件名
        String appHome = Environment.getExternalStorageDirectory().getAbsolutePath()+"/myApp.m4a";
        mBtnAudio.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startRecordAudio(appHome);
            }
        });
        mBtnunAudio.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                stopRecordAudio();
            }
        });

        //判断安卓版本
        if(Build.VERSION.SDK_INT >=23){
            //需要申请的权限
            String [] permission={
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
                    Manifest.permission.RECORD_AUDIO
            };
            for(int i=0;i<permission.length;i++){
                //判断是否有权限
                if(this.checkSelfPermission(permission[i]) != PackageManager.PERMISSION_GRANTED){
                    this.requestPermissions(permission,i);
                }
            }
        }
    }

    //开始录音
    void startRecordAudio(String path){
        if(recorder ==null){
            recorder =new MediaRecorder();
        }
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置录音来源
        recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置输出格式
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//设置编码格式
        recorder.setOutputFile(path);//设置输出路径
        try {
            recorder.prepare();//准备
            recorder.start();//开始录音
            Toast.makeText(this,"开始录音",Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    void stopRecordAudio(){
        if(recorder !=null){
            recorder.stop();//停止录音
            recorder.reset();//重置
            recorder.release();//释放资源
            recorder =null;
            Toast.makeText(this,"停止录音",Toast.LENGTH_SHORT).show();
        }
    }


}




---

# 总结
提示:别忘了添加必要的权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />

这样就可以实现录音的功能了

转自:Android实现录音的功能_朴树说的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值