
建立MediaRecorder的一般步驟:
音頻錄制需要權重限:
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
1、建立MediaRecorder對象
2、調用MediRecorder對象的setAudioSource()方法設定聲音的來源,一般傳入MediaRecorder.MIC
3、調用MediaRecorder對象的setOutputFormat()設定所錄制的音頻檔案的格式
4、調用MediaRecorder對象的setAudioRncoder()、setAudioEncodingBitRate(int bitRate)、setAudioSamlingRate(int SamplingRate)設定所錄音的編碼格式、編碼位率、采樣率等,
5、調用MediaRecorder對象的setOutputFile(String path)方法設定錄制的音頻檔案的儲存位置
6、調用MediaRecoder對象的Prepare()方法準備錄制
7、調用MediaRecoder對象的start()方法開始錄制
8、調用MediaRecoder對象的stop()方法停止錄制,并調用release()方法釋放資源
執行個體
布局檔案
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" tools:context=".MainActivity">
<Button
android:id="@+id/btn_mediarecorder_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="開始錄制"/>
<Button
android:id="@+id/btn_mediarecorder_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="結束錄制"/>
</LinearLayout>
MainActivity
package com.example.administrator.mymediarecorder;
import android.media.MediaRecorder;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button mBtnStart;
private Button mBtnStop;
private MediaRecorder mediaRecorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnStart= (Button) findViewById(R.id.btn_mediarecorder_start);
mBtnStop= (Button) findViewById(R.id.btn_mediarecorder_stop);
mBtnStart.setOnClickListener(this);
mBtnStop.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_mediarecorder_start:
mediaRecorder=new MediaRecorder();
//設定音頻來源為麥克
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//設定錄制格式為3gp
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//設定錄音的編碼格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
//設定錄制音頻的存儲檔案
mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory()+"/myrecorder.3gp");
try {
//準備錄制
mediaRecorder.prepare();
//開始錄制
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.btn_mediarecorder_stop:
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
break;
}
}
}