[Android]_ch10.10_錄音程式撰寫
n錄音程式撰寫,請依照下列步驟:
n建立MediaRecorder物件
n呼叫setAudioSource()指定錄音來源
n呼叫setOutputFormat()設定錄音輸出格式(例如3GPP)
n呼叫MediaRecorder的setAudioEncoder()設定錄音編碼方式(例如AMR_NB)
n呼叫setOutputFile()設定錄音檔案的存放位置
n呼叫prepare()準備錄音
n呼叫start()開始錄音
n呼叫stop()結束錄音
n呼叫reset()重複使用MediaRecorder物件,但必須重新設定
n呼叫release()釋放MediaRecorder佔用的資源
n建立MediaRecorder物件
n呼叫setAudioSource()指定錄音來源
n呼叫setOutputFormat()設定錄音輸出格式(例如3GPP)
n呼叫MediaRecorder的setAudioEncoder()設定錄音編碼方式(例如AMR_NB)
n呼叫setOutputFile()設定錄音檔案的存放位置
n呼叫prepare()準備錄音
n呼叫start()開始錄音
n呼叫stop()結束錄音
n呼叫reset()重複使用MediaRecorder物件,但必須重新設定
n呼叫release()釋放MediaRecorder佔用的資源
package com.derek.ch30_takephoto;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Act02 extends Activity{
Button btn2_1,btn2_2,btn2_3;
MediaRecorder mr;
boolean stoped=true;
TextView tv2_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.act02);
tv2_1=(TextView)findViewById(R.id.textView2_1);
btn2_1=(Button)findViewById(R.id.button2_1);
btn2_2=(Button)findViewById(R.id.button2_2);
// btn2_3=(Button)findViewById(R.id.button2_3);
btn2_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(!isSDExit())
Toast.makeText(Act02.this, "SD CARD未裝置!", Toast.LENGTH_SHORT).show();
if(mr==null || stoped==true)
mr=new MediaRecorder();
mr.reset();
mr.setAudioSource(MediaRecorder.AudioSource.MIC);
mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mr.setOutputFile("/storage/sdcard/gjun.3gp");
try {
mr.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mr.start();
stoped=false;
tv2_1.setText("錄音中...");
btn2_1.setEnabled(false);
}
});
btn2_2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(mr!=null){
mr.stop();
mr.release();
mr=null;
tv2_1.setText("停止錄音...");
btn2_1.setEnabled(true);
}
}
});
}
public boolean isSDExit(){
String state=Environment.getExternalStorageState();
if(state.equals(Environment.MEDIA_MOUNTED))
return true;
else
return false;
}
}
沒有留言:
張貼留言