2019年4月15日 星期一

[Android]_ch10.10_錄音程式撰寫



[Android]_ch10.10_錄音程式撰寫
n錄音程式撰寫,依照下列步驟
n建立MediaRecorder物件
n呼叫setAudioSource()指定錄音來源
n呼叫setOutputFormat()設定錄音輸出格式(例如3GPP
n呼叫MediaRecordersetAudioEncoder()設定錄音編碼方式(例如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;

}





}


沒有留言:

張貼留言

Ether.fi Cash Card 一張所有人必備的加密貨幣信用卡   [Ether.fi Cash Card] : https://www.ether.fi/app/cash/sign-up?ref_code=d27f8523 ------國際交易所------ [Bitg...