首页 > 代码库 > Android 使用MediaRecorder录音

Android 使用MediaRecorder录音

package com.example.HyyRecord;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;

import java.io.File;
import java.io.IOException;

public class MyActivity extends Activity {
    private MediaRecorder mediaRecorder;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //首先要保证这个文件夹存在
        File file = new File("/sdcard/0hyyRecord");
        if (!file.exists()) {
            file.mkdir();
        }
        mediaRecorder = new MediaRecorder();
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        mediaRecorder.setOutputFile("/sdcard/0hyyRecord/" + System.currentTimeMillis() + ".3pg");

    }

    public void startRecord(View view) {
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            try {
                mediaRecorder.prepare();
            } catch (IOException e) {
                e.printStackTrace();
            }
            mediaRecorder.start();
        } else {
            System.out.println("sd卡不可用");
        }
    }

    public void stopRecord(View view) {
        mediaRecorder.stop();
        mediaRecorder.reset();
    }

    @Override
    protected void onDestroy() {
        try {
            mediaRecorder.release();
        } catch (Exception e) {
            e.printStackTrace();
        }
        super.onDestroy();
    }

   
}

 界面文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <Button android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="开始录音"
            android:onClick="startRecord"
            />

    <Button android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="停止录音"
            android:onClick="stopRecord"
            />

  
</LinearLayout>