Android 多媒体应用:MediaRecorder 录制音视频 之 音频

一、MediaRecord简单介绍

  手机为我们提供了麦克风硬件,我们可以通过麦克风实现音频的录制。这里Android为我们提供了MedioRecorder来录制音频与视频。下图就是MediaRecorder的状态转换图。
Android 多媒体应用:MediaRecorder 录制音视频 之 音频_第1张图片
音频状态转换
reset()–setAudioSource()设置声音来源MIC–setOutputFormat()设置所录制的音频文件的格式–setAudioEncoder()设置所录制声音的编码格式–setOutputFile()设置录制音频文件的保存位置–prepare()–start()–stop()–reset()–release()释放资源
视频状态转换类似,可以直接看图

二、代码小例

关于MediaRecorder的使用我们可以自己查询API根据状态的转换进行直接设置,而且API里本身就有关于MediaRecorder使用的范例,按照范例使用即可。
1、布局文件中是两个按钮,一个开始一个停止。
2、MainActivity:监听按钮,停止录制的时候注意释放资源。

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.btn_start_record:
            mediarecord = new MediaRecorder();
            mediarecord.setAudioSource(MediaRecorder.AudioSource.MIC);
            mediarecord.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mediarecord.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mediarecord.setOutputFile(Environment.getExternalStorageDirectory()
                    + "/myrecorder.3gp");
            try {
                mediarecord.prepare();
                mediarecord.start();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            break;
        case R.id.btn_end_record:
            mediarecord.stop();
            mediarecord.reset();
            mediarecord.release();
            break;
        default:
            break;
        }

    }

3、注意添加权限

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

你可能感兴趣的:(Android 多媒体应用:MediaRecorder 录制音视频 之 音频)